我有一个使用ng-options填充的选择框。
$scope.items = [
{ID: '2012', Title: 'Chicago'},
{ID: '2013', Title: 'New York'},
{ID: '2014', Title: 'Washington'},
];
<select ng-model="selectedItem" ng-options="item.ID as item.Title for item in items | filter:filterItemNames">
</select>
这会返回......
<option value="2012">Chicago</option>
<option value="2013">New York</option>
<option value="2014">Washington</option>
我想根据他们的名字(即纽约和芝加哥)过滤和显示多个项目。
我目前正在尝试使用带有项目名称的数组进行过滤,但这不起作用。
$scope.filterItemNames = ['New York', 'Chicago'];
答案 0 :(得分:1)
在这种情况下,您可以创建自定义过滤器功能:
$scope.filterByNames = function(el) {
return !$scope.filterItemNames || $scope.filterItemNames.indexOf(el.Title) > -1;
};
并在HTML中使用它:
<select ng-model="selectedItem"
ng-options="item.ID as item.Title for item in items | filter:filterByNames">
</select>