我正在尝试迭代一个JSON对象userTypes
。
对于下面的代码:
在第一个ng-repeat中:< br > < code > { { user . type } } outputs ' Parent '(如预期一样),< br > < code > { { user . options } } outputs '[{ " option 1 ":" 11 qwert "," option2":"22QWERT"}]'(如预期一样)。< br >
但是在第二个ng-repeat
中,我无法循环访问user.options
并输出每个{{options}}
应该更改什么才能将option1
和option2
作为第2个ng-重复
中的输出?
JS 代码段
var userTypes = [{
"type": 'Parent',
"options": [{
"option1": "11QWERT",
"option2": "22QWERT"
}]
}]
超文本标记语言片段
<li ng-repeat="user in userTypes">
<p>{{user.type}}</p>
<p>{{user.options}}</p>
<li ng-repeat="option in user.options">
<p>
{{option}}
</p>
</li>
</li>
因为是用户。选项是一个数组,您应该再次循环它。通过这样做,您将获得一个对象,通过该对象,您可以轻松访问选项1和选项2。
请参考工作柱塞:
http://embed.plnkr.co/5c3i5fY50jLP0fFgxkUX/preview
如果您有任何疑问,请查看代码。
希望这有帮助
对于这个精确的JSON输入,应该是这样的:
<li ng-repeat="option in user.options">
<p>
{{option.option1}}
{{option.option2}}
</p>
</li>
但是,正如您所说,您想要非固定数量的选项,请将您的JSON更新为这样:
"options":["11QWERT","22QWERT"]
然后你的代码应该按照你的要求工作。
您可以将每个新元素添加到列表中,并在前面加上简单的coma。
替换您的孩子<code>
<li ng-repeat="user in userTypes">
<p>{{user.type}}</p>
<ul ng-repeat="(key, value) in user.options[0]">
<p>{{key}}: {{value}}</p>
</ul>
</li>
或者,如果<code>选项
<li ng-repeat="user in userTypes">
<p>{{user.type}}</p>
<ul ng-repeat="option in user.options">
<li ng-repeat="(key, value) in option">{{key}}: {{value}}</li>
</ul>
</li>
如果不需要对象键:
<ul ng-repeat="option in user.options">
<li ng-repeat="item in option">{{item}}</li>
</ul>
小提琴
扩展解释:
在您的示例中,您有< code >
<li ng-repeat="user in userTypes">
<li ng-repeat="option in user.options">
</li>
</li>
由于它不是有效的超文本标记语言,浏览器将此标记解释为以下内容:
<li ng-repeat="user in userTypes">
</li>
<li ng-repeat="option in user.options">
</li>
由于< code>ng-repeat为每次迭代创建了新的作用域,因此您无法在第二个< code>ng-repeat中访问< code>user变量,迭代器也不会运行。
问题内容: 我可以仅在AngularJs中使用一个数组同时遍历两个数组吗?如果是这样,那又如何? 例如我有两个数组 它应该能够为两个数组产生相同的索引。 问题答案: 如果要使用第一个数组的索引访问第二个数组,请尝试以下操作: 看到这个小提琴:http : //jsfiddle.net/dm9zhgx9/
问题内容: 无论如何,有没有一项要计数,然后在循环之外显示呢? 我曾经尝试过没有成功,因为我认为每次都压倒一切。 无论如何,在我的控制器中未执行任何功能就可以做到这一点吗? 问题答案: 在ng-repeat中初始化的代码将具有不同的作用域,并且无法在循环外部访问。 试试这个:
我有一个名为的数组。它包含一系列对象,每个对象都包含一个名为的属性。我想在数组中的每个对象上重复该数组的内容。 如果我重复通过它在单个数组上运行良好。 但是,我想继续重复,就像这样: 等等。 我的(不正确)解决方案当前看起来如下: 在这种情况下,我假设$index将代表递增的整数,但它不起作用。有人能帮忙吗? 提前感谢...
Angularjs ng用div标记重复。。我有一个带有div标记的代码,如图所示。。我想重复整个div,在第二个循环中img src是不同的。。如何使用angularjs中的ng repeat指令执行此操作?
问题内容: 我的控制器从服务器上抓人: 我的模板每行需要显示三个人。例如,如果它是一个表: 我不确定如何有条件地应用最佳实践的时间或最佳实践。我知道如何通过向控制器添加分组逻辑来做到这一点,但我认为最好将设计逻辑排除在控制器之外。 问题答案: 经过多年的经验积累,很显然,最好的方法是在控制器中将数组拆分为多个块。每次修改原始数组时,都要更新分块数组。
我有一个动态JSON,其中包含名称列表,它还包含子名称作为子集。如何使用angularJS ng重复在超文本标记语言UI中显示它 示例动态JSON是 注意:JSON是基于请求生成的。子数组是可选的,它可以包含长度“n”