如何使用AngularJS输出JSON数组中的元素
How to output elements in a JSON array with AngularJS
作用域中定义的JSON数组:
$scope.faq = [
{"Question 1": "Answer1"},
{"Question 2": "Answer2"}
];
HTML:
<div ng-repeat="f in faq">
{{f}}
</div>
输出:
{"Question 1": "Answer1"}
{"Question 2": "Answer2"}
我想要输出的样子:
Question 1 - Answer1
Question 2 - Answer2
它看起来应该如何工作:
<div ng-repeat="f in faq">
{{f.key}}-{{f.value}}
</div>
但事实并非如此。
在类似的范围内更改json数组;
$scope.faq = [
{key: "Question 1",
value: "Answer1"},
{key: "Question 2",
value: "Answer2"}
];
在你看来;
<div ng-repeat="f in faq">
{{f.key}}-{{f.value}}
</div>
由于它在一个数组中,您将不得不循环遍历每个对象的键值。
http://fiddle.jshell.net/TheSharpieOne/QuCCk/
<div ng-repeat="value in faq">
<div ng-repeat="(question,answer) in value">
{{question}} - {{answer}}
</div>
</div>
或者:
如果你只有一个简单的对象:
$scope.faq = {
"Question 1": "Answer1",
"Question 2": "Answer2"
};
你可以避免第二次重复
<div data-ng-repeat="(question,answer) in faq">
{{question}} - {{answer}}
</div>
http://fiddle.jshell.net/TheSharpieOne/D3sED/
$scope.faq = [
"Answer1",
"Answer2"
];
<div ng-repeat="answerswer in faq">
Question {{$index+1}}-{{answer}}
</div>
如果您使用符合ECMA5的浏览器,您可以尝试,
<div ng-repeat="f in faq">
{{Object.keys(f)[0]}}-{{f[Object.keys(f)[0]]}}
</div>
当然,只有当您的对象只有一个键时,这才能可靠地工作。如果它有多个密钥,最好编写一个过滤函数来获取密钥名称,然后可以使用该函数提取相关密钥。
检查我的代码:http://plnkr.co/edit/NGEcK7iieFRtvt7WP48A?p=preview
ng repeat需要一个数组,对于数组中的每个对象,都需要绑定有值的键。
相关文章:
- 在函数中添加数组元素的数值
- 访问JSON对象内部的数组元素
- 用于检查数组中是否存在元素的javascript自定义方法
- 在数组中的一个元素上设置多个值
- 从组件状态的数组中删除元素
- Mongoose-在更新中删除数组元素
- 从数组中删除元素的最佳方法是:javascript/jquery
- 数组中元素(字符串)的总和
- javascript数组元素是否知道其封闭数组
- 查找数组javascript中包含的元素类型
- 如何在javascript上向数组的对象添加新元素
- 如果数组仍在执行,async.forEach()将运行我添加到数组中的新元素
- 使用filter和map方法将数组中某些元素的第一个字母大写-JavaScript
- 一些元素没有从数组中删除
- JS.循环遍历多维数组,以计数元素在每列中的出现次数
- 将数组元素附加到FormData dos'不适用于Firefox 15
- 元素不会添加到Javascript数组中
- 如何从另一个带下划线的数组中筛选带元素的数组
- 如何将函数应用于两个数组的第 n 个元素(数组的数组)
- Js接受两个值之间的元素(数组)