首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AngularJS过滤器:智能搜索

AngularJS过滤器:智能搜索
EN

Stack Overflow用户
提问于 2016-02-19 14:34:57
回答 1查看 1.2K关注 0票数 2

我试图在ng-repeat中过滤结果,但使用“智能搜索”功能,即。使用多个关键字进行搜索。集合是一个复杂的对象数组,包含对象。

根据角度文件:$filter,您可以使用{$: "keyword"}和filter函数来加深过滤器,但我还没有让它开始工作。

片段:

代码语言:javascript
复制
.filter('smartsearch', function () {
    return function (collection, keywords) {
    if (!keywords) {
        return collection;
    } else {
        keywords = keywords.split(" ");
        _.each(keywords, function (word) {
            collection = _.filter(collection, {$: word});
        });
        return collection;
    }
}

它似乎每次都返回一个空数组([]),尽管我知道我使用的是匹配关键字。

更新

让它工作是因为@引力板为我指明了正确的方向,下面是工作解决方案:

代码语言:javascript
复制
.filter('smartsearch', ['$filter', function ($filter) {
        return function (collection, keywords) {
            if (!keywords) {
                return collection;
            } else {
                keywords = keywords.split(" ");
                $.each(keywords, function (k, v) {
                    collection = $filter('filter')(collection, {$: v});
                });
                return collection;
            }
        }
    }]);
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-02-19 15:01:49

当你想要使用角的时候,你使用的是下划线过滤方法。

只需将_.filter(更改为$filter(即可。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35507782

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档