当我在ul和li中使用ng-repeats时,我收到了错误。
这是我的HTML代码:
<ul>
<li ng-repeat="(key, value) in (myData | groupBy: 'id')">
{{key}}
<ul>
<li ng-repeat="details in value">
{{details.name}}
</li>
</ul>
</li>
</ul>
JS代码:
.filter('groupBy', function () {
return function (data, key) {
var result = {};
for (var i = 0; i < data.length; i++) {
if (!result[data[i][key]])
result[data[i][key]] = [];
result[data[i][key]].push(data[i])
}
alert(JSON.stringify(result));
return result;
};
});
这些是我得到的错误
答案 0 :(得分:0)
尝试将track by $index
放入ng-repeat中,如下所示:
<ul>
<li ng-repeat="(key, value) in myData track by id">
{{key}}
<ul>
<li ng-repeat="details in value">
{{details.name}}
</li>
</ul>
</li>
</ul>
如果您在数组
中有重复项,也可以track by $index
<li ng-repeat="(key, value) in myData track by $index">
答案 1 :(得分:0)
无限摘要是由每次运行函数时返回新结果的过滤器引起的。您必须重写该函数,以便它直接修改原始0 1 2 3 4
1 1 2 3 4
2 1 2 3 4
3 1 2 3 4 ⬅
参数,并再次返回data
参数。