Angular自定义文本搜索过滤器顺序

Angular custom text search filter order

本文关键字:过滤器 顺序 搜索 文本 自定义 Angular      更新时间:2023-09-26

我想调整我的角度文本搜索,使它不是词序敏感。我需要搜索一个大json对象基本上,如果文件中有{"name":"John Doe"},我希望searchText 'Doe John'返回正数。有什么建议吗?由于

<input type="text" ng-model="searchText">
<ul>
    <li ng-repeat="item in items | filter:searchText">
       {{ item }}
    </li>
</ul>
编辑:

我得到它的工作,谢谢!http://jsfiddle.net/Lp02huqm/

我实际上创建了一个类似的过滤器。

app.filter("searchText", function () {
    return function (items, filterBy) {
        var filterBy = filterBy.split(/'s+/);
        if (!filterBy.length) {
            return items;
        }
        return items.filter(function (item) {
            return filterBy.every(function (word) {
                return ~item.indexOf(word);
            });
        });
    };
});

注意我使用的是every,所以你需要"Doe John"来表示"John Doe"。如果您希望"Doe"或"John"也匹配,您可以使用.some