我有一个控制器,我在这里声明模型:
$scope.Model =[];
在我进行休息调用后,结果我将其推送到模型:
$scope.Model.push(results.data);
返回的数据可以有不同的长度和大小:
Name
Email
Items
Item 1
Item 2
Item n
Roles
Role 1
Role 2
Role n
使用AngularJS中的数组处理此问题并在视图中使用ng-repeat以显示数据的最佳做法是什么?
我应该像这样声明我的数组:
$scope.Model =[];
并推送结果:
$scope.Model.push(results.data);
或者像这样:
$scope.Model =[{
Name: '',
Email: '',
Items: [{
Id: '',
Name: '',
Price: ''
}],
Roles: [{
Id: '',
Name: ''
}],
}];
并将结果记录下来:
$scope.Model = results.data;
答案 0 :(得分:0)
它基于您的响应和方案。但ng-repeat需要Array
或Array list
。
1)数组
示例1(普通数组响应)
$scope.names= ["Apple", "Banana", "Orange"];
<ul>
<li ng-repeat="x in names">
{{ x }}
</li>
</ul>
示例2(具有数组的对象响应)
$scope.names= {
"fruits": ["Apple", "Banana", "Orange"]
};
<ul>
<li ng-repeat="x in names.fruits">
{{ x }}
</li>
</ul>
2)数组列表
示例1(普通数组列表响应)
$scope.names = [{
"id": "1",
"name": "Asik"
},
{
"id": "1",
"name": "John"
},
{
"id": "1",
"name": "Smith"
}];
<ul>
<li ng-repeat="x in names">
id:{{ x.id }}, name:{{ x.name }}
</li>
</ul>
示例2(具有数组列表的对象响应)
$scope.names = {
"success": "true",
"items": [{
"id": "1",
"name": "Asik"
},
{
"id": "1",
"name": "John"
},
{
"id": "1",
"name": "Smith"
}]
};
<ul>
<li ng-repeat="x in names.items">
id:{{ x.id }}, name:{{ x.name }}
</li>
</ul>
基本上,service / ajax响应来自Array
或Array list
。因此,您不需要执行以下步骤。
$scope.Model =[];
$scope.Model.push(results.data);
但上述情况在某些情况下(例如:合并2个服务/ ajax响应)
答案 1 :(得分:0)
我使用了以下内容:
angular.copy(results.data, $scope.Model)
这实际上会将其余服务的结果复制到我的模型中,而不必声明模型的每个属性。