首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >具有“或”条件的某些字段中的AngularJS滤波器

问具有“或”条件的某些字段中的AngularJS滤波器
EN

Stack Overflow用户
提问于 2015-05-04 09:59:37
回答 2查看 878关注 0票数 2

我对AngularJS过滤器有个问题。

我不想使用一个输入搜索框“筛选”,而是使用"OR“条件使用多个字段进行筛选。

这是一个演示。

http://jsbin.com/wodewexetu/2/edit

我不打算只使用name和description字段过滤列表。

如果我输入:“你好”、“世界”或“角度”,它不应该返回任何结果。

如果我输入:“示例”,它应该只返回第1行和第3行。

如果我输入:"description“,它应该只返回第1行和第2行。等等。

因此,通常,我希望使用一个名称,多个,但是列表中的某些字段使用"OR“条件进行筛选。

我能够创造“和”条件,但这不是我所需要的。

我也搜索了很多关于这个话题,但不幸的是,没有这些代码和例子对我有用。

请提前帮助和感谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-05-04 11:25:47

您可以创建自己的自定义过滤器,并应用您想要的任何功能。

在你的情况下,就像:

代码语言:javascript
复制
app.filter('customFilter', function() {
  return function(items, search) {
    if (!search) {
      return items;
    }
    var searchItems = new RegExp(search.split(' ').join("|"), "i");
    return items.filter(function(item) {
      return searchItems.test(item.name) || searchItems.test(item.description);
    });
  };  
}); 

看到它在运行这里。

票数 2
EN

Stack Overflow用户

发布于 2015-05-04 10:39:13

我认为OR过滤器还不支持。我通过创建一个名为$searchable的元属性来解决这个问题。

代码语言:javascript
复制
 angular.forEach($scope.items, function (item){
     Item.$searchable = [item.name, item.description].join (' ');
}

在html中:

代码语言:javascript
复制
<input type="text" ng-model="search.$searchable">
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30027324

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档