假设我有一系列字符串,如["不要担心","担心","永远快乐,不要担心& #34; ]
当我搜索担心时,使用ng-repeat上的默认搜索过滤器,无论担心在搜索字符串中的位置如何,它都会给我三个结果。
我正在尝试为ng-repeat创建一个自定义搜索过滤器,以便在搜索时我会根据"忧虑"的位置对结果进行排序。在原始字符串中。
所以在搜索单词"担心"在上面的数组中,我的预期输出将是 ["担心","不要担心","永远快乐,不要担心"]。
这可能吗?
答案 0 :(得分:5)
app.filter('wordsFilter', function() {
return function(items, word) {
var filtered = [];
angular.forEach(items, function(item) {
if(item.indexOf(word) !== -1){
filtered.push(item);
}
});
filtered.sort(function(a,b){
if(a.indexOf(word) < b.indexOf(word)) return -1;
else if(a.indexOf(word) > b.indexOf(word)) return 1;
else return 0;
});
return filtered;
};
});
我希望它有所帮助!