1

我试图在这个 plunker 中进行 angularjs 全文搜索

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

我尝试了很多组合,但没有一个有效..

例如,我想搜索“alex big-mary”或“alex 800”或“mary big”之类的跨列,但不起作用 alex 555 有效,因为 555 存在于 alex 单词之后

4

2 回答 2

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
   };
});

See this code in action using this Plunkr: simple OR search filter

于 2013-11-05T08:27:37.107 回答
0

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

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

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

于 2013-11-05T08:26:31.397 回答