2016-03-08 222 views
0

当ng-repeat在一个数组中并且该数组位于另一个对象数组中的对象内部时,重复对象的属性时遇到问题,如下所示:对象数组内部的对象ng-repeat数组

$scope.myJson = [{'id':1,'date':2,'nikola':[{'title':'a', 'name':'b'},{'title':'v', 'name':'b'},{'title':'d', 'name':'b'},{'title':'a', 'name':'b'},{'title':'a', 'name':'b'}]}, 
{'id':1,'date':2,'nikola':[{'title':'r', 'name':'b'},{'title':'a', 'name':'b'},{'title':'a', 'name':'b'},{'title':'a', 'name':'b'},{'title':'a', 'name':'b'}]}, 
{'id':1,'date':2,'nikola':[{'title':'z', 'name':'b'},{'title':'a', 'name':'b'},{'title':'a', 'name':'b'},{'title':'a', 'name':'b'},{'title':'a', 'name':'b'}]}]; 


<div ng-repeat='json in myJson'> 
    <p>{{json.id}}</p> 
    <p>{{json.date}}</p> 
    <p>{{json.nikola.title}}</p> 
</div> 

json.nikola.title没有在每个nikola数组中显示每个标题。 感谢您的帮助。

+0

你尝试过什么?你必须显示你期望的结果。 HTML应该呈现给什么? –

+0

我其实做到了,但显然我没有以正确的方式发布代码。重点是我有那个JSON,我需要ng-repeat'nikola'内的属性,我对结果做什么并不重要。 – Uros

+0

你应该接受下面的@BjørnSørensen的答案,这是正确的解释。 – Suicideboy

回答

2

您没有得到输出的原因是您尝试将数组输出为单个值。如果你想要数组中的每个值,你也可以使用ng-repeat

使用ng-repeat时,您将遍历数组。作为你的第一个目标是用ID来迭代主阵列,这是通过

<div ng-repeat="item in myJson"></div> 

你明白了。进一步你想遍历每个项目上的数组。和以前一样:

<div ng-repeat="subitem in item.nikola"></div> 

你有它。

<div ng-repeat="item in myJson"> 
    <div ng-repeat="subitem in item.nikola"> 
    </div> 
</div> 

然后,您可以在每个中继器上访问您喜欢的属性。

请参阅this plunker for a running example对您的数据。

0

添加另一个ng-repeat迭代的nikola对象

<div ng-repeat='json in myJson'> 
    <p>{{json.id}}</p> 
    <p>{{json.date}}</p> 
    <div ng-repeat='item in json.nikola'> 
     <p>{{item.title}}</p> 
    </div> 
</div>` 
+0

在写这些之前你还尝试过吗?您必须访问'json'的'id'和'date'属性以及'item'的属性'title'才能使其工作。 – Suicideboy

+0

@Tomisol我写得最快,我可以......;) –