相关疑难解决方法(0)

如何编写angularjs过滤器来搜索字符串片段/字符串序列

我正在尝试编写一个angularjs自定义过滤器,用于检查国家/地区数组是否包含用户输入的搜索字符串.

该字符串可以由一个字母(例如"E")或一个n字母的片段(例如"lan")或整个单词(例如"England")组成.

在每种情况下,所有包含该一个字母或该片段的国家都应归还,因此"E"将返回"England","Estonia"等,而"lan"将返回"England","Ireland"等.

到目前为止,我的过滤器返回整个国家或单个字母,但我对字符串片段有困难:

  1. HTML模板:

    <input ng-model="filter.text" type="search" placeholder="Filter..."/>
    
    <ul>
       <li ng-repeat="item in data | listfilter:filter.text">
    </ul>
    
    Run Code Online (Sandbox Code Playgroud)
  2. angularJS

    angular.module('sgComponents').filter('listfilter',[ function () {
    return function(items, searchText) {
        var filtered = [];            
    
        angular.forEach(items, function(item) {
            if(item.label === searchText) { // matches whole word, e.g. 'England'
                filtered.push(item);
            }
            var letters = item.label.split('');
            _.each(letters, function(letter) {
                if (letter === searchText) { // matches single letter, e.g. 'E'
                    console.log('pushing');
                    filtered.push(item);
                }
            });
            // code to match letter fragments, e.g. 'lan'
        });
        return filtered;
    };
    }]);
    
    Run Code Online (Sandbox Code Playgroud)

javascript arrays search filter angularjs

15
推荐指数
2
解决办法
6万
查看次数

标签 统计

angularjs ×1

arrays ×1

filter ×1

javascript ×1

search ×1