<div (ng-repeat='item in items') >
{{item.name}} //works
{{item["name"]}} // works
</div>
如何动态重复项[属性]而不使用“.name”或['name']?
答案 0 :(得分:0)
要动态浏览属性,您需要调用Object.keys(item)
然后迭代它们。最好从您的控制器中删除您的数据,以最大限度地减少您在HTML中需要做的事情。
如果您确实想在HTML-Angular结构中尝试这样做,可以定义:
$scope.returnAllKeyValues = function(obj){
var x = Object.keys(obj),
arr = [];
for(var i = 0; i<x.length; i++){
arr.push(obj[x[i]]);
}
return arr;
}
这个函数的作用是它接受你的JSON对象,然后解析它并收集其中每个键的所有值。
然后,在您的HTML中,您可以编写如下内容:
<h3>FIFA Mactch Summary:</h3>
<div ng-app ng-controller="MyCtrl">
<ul>
<li ng-repeat="item in items">
<span ng-init="keyValues = returnAllKeyValues(item)">
<span ng-repeat="keyValue in keyValues">{{key}} </span>
</span>
</li>
</ul>
</div>
在这里,您可以看到,在原始的ngRepeat中,我们通过上面定义的函数初始化了数组keyValues,其中包含了item&#39; s键中的所有值。然后,重复一遍,你就可以打印所有内容而不知道它们是什么。
这是一个工作的小提琴: http://jsfiddle.net/RkykR/2771/
答案 1 :(得分:0)