迭代包含对象的数组

时间:2015-03-20 12:12:18

标签: angularjs ng-repeat

我想知道如何使用ng-repeat查看对象中的不同对象?

这是我到目前为止的以下代码,用于迭代数组中对象的$ ID:

<div ng-repeat="message in messages"> {{message.$id}} </div>

这就是我的数组的样子:http://imgur.com/8quH0iW 如您所见,数组结构如下所示:
- 项目[0]:
----- $编号:XXXXX
----- Message1(唯一ID):
-------------:date:&#34; XX-XX-XXXX&#34;
-------------:消息:&#34;无论如何&#34;
-------------:发件人:&#34; xxxxxxxxxxxxxxxxxx&#34;
----- Message2(唯一ID):
-------------:date:&#34; XX-XX-XXXX&#34;
-------------:消息:&#34;无论如何&#34;
-------------:发件人:&#34; xxxxxxxxxxxxxxxxxx&#34;
- 项目[1]:
----- $编号:XXXXX
----- Message1(唯一ID):
-------------:date:&#34; XX-XX-XXXX&#34;
-------------:消息:&#34;无论如何&#34;
-------------:发件人:&#34; xxxxxxxxxxxxxxxxxx&#34;
----- Message2(唯一ID):
-------------:date:&#34; XX-XX-XXXX&#34;
-------------:消息:&#34;无论如何&#34;
-------------:发件人:&#34; xxxxxxxxxxxxxxxxxx&#34;

TLDR:如何使用ng-repeat重复数组项目中的对象?另外,我可以使用ng-repeat来获取项目中的最后一个对象吗?例如,最后发送的消息是什么?

谢谢!

1 个答案:

答案 0 :(得分:0)

您不必提及数组中的项是数组还是JSON对象。如果你有一个JSON对象数组,那么这将起作用

vm.objectsTest = [{$id : 123}, {$id: 234}];
<ul ng-repeat="o in vm.testObjects"><li ng-bind="o.$id"></li></ul>

如果您的项目是数组,那么您将需要访问数组中的对象,如下所示:

vm.objectsTest = [[{$id : 123}], [{$id: 234}]];
<ul ng-repeat="o in vm.testObjects"><li ng-bind="o[0].$id"></li></ul>

或者,如果您需要迭代嵌套数组的项目,则可能需要嵌套的ng-repeats。但是,最好的选择是更改数据结构,因为过度使用ng-repeat会导致性能问题。

请参阅此帖子以访问ng-repeat的最后一个元素 Different class for the last element in ng-repeat