我试图像这个plunker一样进行angularjs全文搜索
http://plnkr.co/edit/PwcteF6WAtuAOj3ZDKLe?p=preview
我尝试了很多组合但没有效果..
例如,我想搜索像'alex big-mary'或'alex 800'或'mary big'的交叉列,但不能正常工作 alex 555的作用是因为555存在于alex之后
答案 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