我有以下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