如何在angularjs中制作全文组合滤镜

时间:2013-11-05 07:45:44

标签: angularjs angularjs-filter

我试图像这个plunker一样进行angularjs全文搜索

http://plnkr.co/edit/PwcteF6WAtuAOj3ZDKLe?p=preview

我尝试了很多组合但没有效果..

例如,我想搜索像'alex big-mary'或'alex 800'或'mary big'的交叉列,但不能正常工作 alex 555的作用是因为555存在于alex之后

2 个答案:

答案 0 :(得分:10)

我不知道任何内置过滤器会执行类似OR的搜索。您可以定义自己的过滤器以满足您的需求:

angular.module('App', []).filter('search', function($filter){
   return function(items, text){
      if (!text || text.length === 0)
        return items;

      // split search text on space
      var searchTerms = text.split(' ');

      // search for single terms.
      // this reduces the item list step by step
      searchTerms.forEach(function(term) {
        if (term && term.length)
          items = $filter('filter')(items, term);
      });

      return items
   };
});

使用此Plunkr查看此代码的实际操作:simple OR search filter

答案 1 :(得分:0)

您需要创建一个自定义过滤器,该过滤器将获取您的数据并按行对其进行标记,并仅显示与您输入的字符串匹配的行。

以下是创建自定义过滤器的文档:

http://docs.angularjs.org/guide/dev_guide.templates.filters.creating_filters