是否有一種簡單,優雅的方式來按照慣常的順序排列數組,但將任何缺失值視爲0
(或任意任意設置的值)而不是undefined
?是否有`orderBy`過濾器功能允許它正確處理可選屬性?
例如所以,下面的代碼
<li ng-repeat="item in items | orderBy:['-optionalKey', 'secondaryKey']">{{ item.secondaryKey }}</li>
與像
$scope.items = [
{secondaryKey: 75, optionalKey: 25},
{secondaryKey: 100},
{secondaryKey: 50, optionalKey: 0},
];
數據集中會產生這種
<li>75</li>
<li>50</li>
<li>100</li>
,而不是這個
<li>100</li>
<li>75</li>
<li>50</li>
?
播放用在這裏:http://plnkr.co/edit/G3nQyEzHfUiiovJTD44Y?p=preview
我知道我可以重新實現整個orderBy
過濾器,但是這不是很維護或面向未來。我也可以在常規的orderBy
過濾器中使用函數作爲謂詞,但是我仍然必須將已經內置的複雜參數重新實現到orderBy
(例如,深度嵌套,+
/-
反轉等)。什麼我真的不知道是如果有一些語法,我不知道,讓我做這樣的事情:
<li ng-repeat="item in items | orderBy:['-optionalKey', 'secondaryKey']:false:0">{{ item.secondaryKey }}</li>
...其中第三個參數(0
)代表我想falsy治療價值/丟失鍵爲。
深鍵嵌套版本:http://plnkr.co/edit/xE03dyAWLMr7oqjIs3rw?p=preview – 2014-11-26 17:17:07