我不确定这与AngularJS有什么关系,如果它只与JSON相关。
无论如何,让我们说我们有以下JSON:
$scope.dataSets = {
"names": ["Horace", "Slughorn", "Severus", "Snape"],
"genders": ["Male", "Female"]
}
现在,我使用ng-repeat指令打印上面的内容如下:
<div ng-repeat="data in dataSets>
//Continue readig to know what I am expcting here
</div>
我期望在<div></div>
标签中打印“名称”和“性别”。也就是说,我希望打印JSON的键。我不知道钥匙是什么,因为它们可能是任何东西。我怎么能这样做?
答案 0 :(得分:96)
正如文档所述:
(key,value)in expression - 其中key和value可以是任何用户定义的标识符,expression是范围表达式,用于枚举集合。
<div ng-repeat="(key, data) in dataSets">
{{key}}
</div>
答案 1 :(得分:9)
用于从 AngularJs 中的控制器内部访问 Json 键值对。
for(var keyName in $scope.dataSets){
var key=keyName ;
var value= $scope.dataSets[keyName ];
alert(key)
alert(JSON.stringify(value));
}
答案 2 :(得分:3)
如果dataSets是一个数组而不是一个对象,则首先需要重复数组项,然后重复键或值。
<div ng-repeat="item in dataSets">
<div ng-repeat="(key, value) in item">
{{key}}
{{value}}
</div>
</div>
只是我的2美分。
答案 3 :(得分:1)
对于dataSets中的每个数据集,打印密钥然后遍历各个项目:
<div ng-repeat="(key, dataSet) in dataSets">
<div>{{key}}</div>
<div ng-repeat="value in dataSet">
{{value}}
</div>
</div>
{{dataset}}也可以一次显示,数组将显示为以逗号分隔的值列表。