You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AngularJS如何循环嵌套数组格式的接口响应数据

解决方案:AngularJS 循环渲染分组数据

没问题,这事儿在AngularJS里用ng-repeat就能轻松搞定!因为你的响应数据是对象结构(键是分组名称,值是对应的数据数组),所以我们需要用AngularJS遍历对象的语法来实现你要的「一个div显示名称+对应数据列表」的效果。

步骤1:控制器中处理接口数据

首先在控制器里调用接口,把返回的数据绑定到$scope上(如果用controllerAs语法也可以绑定到实例上,这里用最常用的$scope方式):

// 假设你的AngularJS模块已经定义好了,比如叫myApp
var app = angular.module('myApp', []);

app.controller('GroupDataController', function($scope, $http) {
    // 调用接口获取数据
    $http.get('/your-api-url')
        .then(function(response) {
            // 将接口返回的数据绑定到scope,供页面渲染使用
            $scope.groupedData = response.data;
        })
        .catch(function(err) {
            console.log('数据请求失败:', err);
        });
});

步骤2:页面模板中循环渲染

在HTML模板里,我们用嵌套的ng-repeat:外层遍历对象的键值对(拿到分组名称和对应的数据数组),内层遍历数组里的每条数据:

<div ng-app="myApp" ng-controller="GroupDataController">
    <!-- 遍历每个分组 -->
    <div class="group-wrapper" ng-repeat="(groupName, dataList) in groupedData">
        <!-- 显示分组名称的div -->
        <div class="group-title">*{{ groupName }}*</div>
        
        <!-- 显示对应的数据列表 -->
        <div class="data-list">
            <div class="data-item" ng-repeat="item in dataList">
                <!-- 这里根据你的需求展示item的字段,比如id、time、status等 -->
                ID: {{ item.id }} | 创建时间: {{ item.created_at }} | 状态: {{ item.status }}
            </div>
        </div>
    </div>
</div>

关键说明

  • (groupName, dataList) in groupedData:这是AngularJS专门用来遍历对象的语法,groupName会自动获取对象的每个键(比如你的my2、my),dataList则是对应键的数组数据。
  • 嵌套的ng-repeat="item in dataList":用来遍历每个分组下的具体数据项,你可以自由调整每个数据项的展示字段和样式。
  • 如果需要给分组或列表加样式,直接给对应的div加class就行,比如上面的group-wrapper、group-title等。

内容的提问来源于stack exchange,提问作者My testing

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 09:53:09