こういう面倒なオブジェクトがある場合
some.js
var obj = {
1: [
{
name: 'taro',
someprop: 'hoge'
}
],
2: [
{
name: 'jiro'
},
{
name: 'sabro'
}
]
}
- somepropがある場合には表示したくない
- listの長さが0だったらkeyも表示しない
- listの長さとしてはsomepropがあるオブジェクトはカウントしない(つまり key = 1の場合は長さ0)
画面でどうにかなったりする
some.html
<div ng-repeat="(k, v) in obj">
<p ng-show="filteredList.length > 0">{{ k }}</p>
<ul ng-repeat="item in (filteredList = (v | filter: { someprop: '!' }))">
<li>{{ item.name }}</li>
</ul>
</div>
メモ
filter: { propname: '!' } でプロパティが存在する場合は除外される
filter: { propname: '!!' } でプロパティが存在しない場合は除外される
filterした結果は変数に入れておけるので、それを利用できる。すごい。