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

标签 javascript angularjs angularjs-ng-repeat angularjs-filter

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

这类似于这个问题 - Angular.js ng-repeat :filter by single field

但不是

<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 or ngShow根据特定条件动态显示和隐藏元素。

关于javascript - Angular.js ng-repeat 按具有多个值之一的属性(或值)过滤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21987904/

相关文章:

javascript - 我们可以直接在 react js 渲染函数中使用引导类吗

javascript - 将对象内的 vue 对象获取到控制台

javascript - Chrome CSS 高度属性与 Firefox 不同?

javascript - 如何只执行一次javascript命令

angularjs - 如何在 AngularJs 中设置全局 http 超时

angularjs - ng-repeat 加载数据但在我单击某个按钮之前不会显示

javascript - 循环遍历列表并填充表格

angularjs - 如何在显示新的 toastr 之前清除以前的 toastr 并在它们之间设置超时?

javascript - 带有 Protractor/WebDriverJS 元素的 Jasmine 自定义匹配器

javascript - 如何在不请求外部页面的情况下重用 Angular-JS 常见标记(例如小部件)?