Угловой фильтр работает, но вызывает «10 $ итераций дайджеста»
Я получаю данные от моего внутреннего сервера, структурированного так:
{
name : "Mc Feast",
owner : "Mc Donalds"
},
{
name : "Royale with cheese",
owner : "Mc Donalds"
},
{
name : "Whopper",
owner : "Burger King"
}
На мой взгляд, я хотел бы «инвертировать» список. То есть Я хочу перечислить каждого владельца, и для этого владельца перечислить все гамбургеры. Я могу добиться этого с помощью функции underscorejsgroupBy
в фильтре, который я затем использую с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 итераций достигнуты". Мне трудно понять, как мой код создает бесконечный цикл, который подразумевается в этом сообщении. Кто-нибудь знает почему?
Вот ссылка на планку с кодом:http://plnkr.co/edit/8kbVuWhOMlMojp0E5Qbs?p=preview