Ответ 1
Вместо этого используйте функцию фильтра:
$scope.fruitOrVeg = function(product){
return product.type == 'fruit' || product.type == 'vegetable';
};
<li ng-repeat="item in products | filter:fruitOrVeg">{{item.name}}</li>
Мне нужно иметь возможность фильтровать два разных значения одного поля объекта. Возьмем следующий пример.
$scope.products = [
{name:"Apple",type:"fruit"},
{name:"Grape",type:"fruit"},
{name:"Orage",type:"fruit"},
{name:"Carrot",type:"vegetable"},
{name:"Milk",type:"dairy"}
]
С фильтром ng-repeat="item in products | filter:{type:'fruit'}"
. Я могу получить все фрукты. Но что, если я хочу получить все фрукты и овощи. Я попробовал
ng-repeat="item in products | filter:{type:['fruit','vegetable']}"
Но это не сработало. Я полагаю, что для этого должно быть простое решение, но я не смог его найти.
Вместо этого используйте функцию фильтра:
$scope.fruitOrVeg = function(product){
return product.type == 'fruit' || product.type == 'vegetable';
};
<li ng-repeat="item in products | filter:fruitOrVeg">{{item.name}}</li>
<!-- you can also use a function this simpler way-->
<div ng-repeat="product in products | filter: myFilter">
$scope.myFilter = function (item) {
return product.type == 'fruit' || product.type == 'vegetable';
};