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

时间:2014-08-14 19:38:17

标签: javascript angularjs frontend

我想调整我的角度文本搜索,以便它不是字序敏感的。 我必须搜索一个大的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/

1 个答案:

答案 0 :(得分:3)

我实际上为某些东西创建了一个类似的过滤器。

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,因此您需要&#34; Doe John&#34;对于&#34; John Doe。&#34;如果你想要&#34; Doe&#34;或&#34;约翰&#34;要匹配,您可以使用.some