我有以下HTML:如何清除Angular中select元素中的過濾器?
<select ng-options="mark.id as mark.name for mark in marks" ng-model="markSearch.mark.id">
<option value="">-- Choose mark --</option>
</select>
...
<tr ng-repeat-start="pipeType in pipeTypes | filter:markSearch">
我想篩選基於該商標所選擇的選項我pipeType對象。每個pipeType對象都有一個由兩個字段組成的標記對象 - id和name。我希望能夠在選擇「 - 選擇標記 - 」選項時清除過濾器。但是,當我點擊「 - 選擇標記 - 」選項時,沒有任何pipeType對象可見。我想要在發生這種情況時可視化所有對象。我應該在我的代碼中更改什麼?
編輯: 這裏是一個plunk。
編輯2: 我已經接受Matho的答案,它的工作原理。以防萬一別人想知道爲什麼它的工作原理,我想這個簡短的解釋(來自this answer評論)將清除你的想法。
對於數組中的每個元素,Angular將調用比較函數並按預期傳入「markSearch」,並將元素傳遞爲「actual」。所以我們說,如果期望的或「markSearch」是空的,那麼匹配ALL元素(返回true)。否則,執行「嚴格」對象比較
你可以搭起一個jsfiddle或plunk – 2015-03-30 22:36:19
當它是:'... filter:markSearch.mark.id「>'? – Tony 2015-03-30 22:47:42
我加了一個plunk – Yulian 2015-03-30 23:27:23