是否可以过滤对象数组,从而使属性的值可以是几个值(或条件)中的任一个 而无需编写自定义过滤器
这类似于此问题-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') }">
最好的方法是使用一个函数:
<div ng-repeat="product in products | filter: myFilter"> $scope.myFilter = function (item) { return item === 'red' || item === 'blue'; };
另外,您可以使用ngHide或ngShow根据特定条件动态显示和隐藏元素。