繁体   English   中英

AngularJs的自定义搜索过滤器

[英]Custom search filter for AngularJs

假设我有一个字符串数组,例如[“不用担心”,“担心”,“总是快乐并且不用担心”]

当我使用ng-repeat上的默认搜索过滤器搜索忧虑时,它给我所有三个结果,而与要搜索的字符串中忧虑的位置无关。

我正在尝试为ng-repeat创建一个自定义搜索过滤器,以便在担心搜索时,我应该根据原始字符串中“担心”的位置对结果进行排序。

因此,在上述数组中搜索单词“ worry”后,我的预期输出将为[“ worry”,“ do n't担心”,“永远快乐,不要担心”]。

这可能吗?

你可以试试这个吗?

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

希望对您有所帮助!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM