我从后端服务器接收数据,结构如下:
{
name : "Mc Feast",
owner : "Mc Donalds"
},
{
name : "Royale with cheese",
owner : "Mc Donalds"
},
{
name : "Whopper",
owner : "Burger King"
}
就我而言,我想“反转”列表。即我想列出每个所有者,并为该所有者列出所有汉堡包。groupBy
我可以通过在过滤器中使用 underscorejs 函数来实现这一点,然后将其与ng-repeat
指令一起使用:
JS:
app.filter("ownerGrouping", function() {
return function(collection) {
return _.groupBy(collection, function(item) {
return item.owner;
});
}
});
HTML:
<li ng-repeat="(owner, hamburgerList) in hamburgers | ownerGrouping">
{{owner}}:
<ul>
<li ng-repeat="burger in hamburgerList | orderBy : 'name'">{{burger.name}}</li>
</ul>
</li>
这可以按预期工作,但是当使用错误消息“达到 10 $digest 迭代”呈现列表时,我得到一个巨大的错误堆栈跟踪。我很难看到我的代码如何创建此消息所暗示的无限循环。有谁知道为什么?
这是一个带有代码的 plunk 的链接:http ://plnkr.co/edit/8kbVuWhOMlMojp0E5Qbs?p=preview