【发布时间】:2013-05-06 14:25:12
【问题描述】:
我从后端服务器接收数据,结构如下:
{
name : "Mc Feast",
owner : "Mc Donalds"
},
{
name : "Royale with cheese",
owner : "Mc Donalds"
},
{
name : "Whopper",
owner : "Burger King"
}
在我看来,我想“反转”列表。 IE。我想列出每个所有者,并为该所有者列出所有汉堡包。我可以通过在过滤器中使用 underscorejs 函数 groupBy 来实现这一点,然后将其与 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
【问题讨论】: