我正在学习AngularJS教程,并了解其基础知识
但是,开箱即用的实现似乎仅限于将项目列表过滤为输入的确切单词或短语.
示例:如果查询是“table cloth”,则结果列表可以包含此短语“装饰表布”的结果,但不包括“装饰布料表”,因为过滤器只是一个连续的搜索字符串.
请参阅下面的
surfbuds答案,因为它是优越的
只需使用您自己的过滤器:
.filter("myFilter",function(){ return function(input,searchText){ var returnArray = []; var searchTextSplit = searchText.toLowerCase().split(' '); for(var x = 0; x < input.length; x++){ var count = 0; for(var y = 0; y < searchTextSplit.length; y++){ if(input[x].toLowerCase().indexOf(searchTextSplit[y]) !== -1){ count++; } } if(count == searchTextSplit.length){ returnArray.push(input[x]); } } return returnArray; } });
jsfiddle:http://jsfiddle.net/Cq3PF/
此过滤器可确保找到所有搜索词.