次のような構造のバックエンド サーバーからデータを受け取ります。
{
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 iterations reached」というエラー メッセージでリストがレンダリングされると、大量のエラー スタック トレースが表示されます。このメッセージが示すように、自分のコードが無限ループを作成する方法を理解するのに苦労しています。誰でも理由を知っていますか?
コード付きのプランクへのリンクは次のとおりです: http://plnkr.co/edit/8kbVuWhOMlMojp0E5Qbs?p=preview