一尘不染

Angular.js ng-repeat过滤器,具有多个值之一(值或)的属性

angularjs

是否可以过滤对象数组,从而使属性的值可以是几个值(或条件)中的任一个 而无需编写自定义过滤器

这类似于此问题-Angular.js ng-repeat:按单个字段过滤

但是代替

<div ng-repeat="product in products | filter: { color: 'red' }">

是否可以做这样的事情

<div ng-repeat="product in products | filter: { color: 'red'||'blue' }">

对于以下示例数据-

$scope.products = [
   { id: 1, name: 'test', color: 'red' },
   { id: 2, name: 'bob', color: 'blue' }
   /*... etc... */
];

我尝试失败

<div ng-repeat="product in products | filter: { color: ('red'||'blue') }">

阅读 568

收藏
2020-07-04

共1个答案

一尘不染

最好的方法是使用一个函数:

<div ng-repeat="product in products | filter: myFilter">

$scope.myFilter = function (item) { 
    return item === 'red' || item === 'blue'; 
};

另外,您可以使用ngHide或ngShow根据特定条件动态显示和隐藏元素。

2020-07-04