当仅限于一个属性时,我不知道如何清除基于选择的过滤器。这是数据:
$scope.items = [
{'name': 'Adam', 'fruit': 'apple'},
{'name': 'Shelley', 'fruit': 'apple'},
{'name': 'Barbara', 'fruit': 'plum'},
{'name': 'Steve', 'fruit': 'Adam\'s apple'},
{'name': 'Marty Appleton', 'fruit': 'onion'}
];
这就是我想要过滤它的方式,在 itemname
属性中搜索过滤器的文本:
<select ng-model="select1.name" ng-options="item.name as item.name for item in items">
<option value="">No filter</option>
</select>
<div ng-repeat="item in items | filter:select1">
{{ item.name }}: {{ item.fruit }}
</div>
当我选择其中一个选项时,会按预期过滤列表。但是当我再次选择空的“无过滤器”选项时,显示的列表是空的。如果我不将过滤器限制为一个属性,即使用ng-model="select1"
而不是ng-model="select1.name"
. 如果我改用文本输入,它也可以工作。
这是一个实际的工作示例 - 您会注意到您无法使用右下角的选择清除过滤器,但您可以使用所有其他元素。
http://codepen.io/anon/pen/vLHqa
我迷路了。我究竟做错了什么?