我试图在ng-repeat中过滤结果,但使用“智能搜索”功能,即。使用多个关键字进行搜索。集合是一个复杂的对象数组,包含对象。
根据角度文件:$filter,您可以使用{$: "keyword"}和filter函数来加深过滤器,但我还没有让它开始工作。
片段:
.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;
}
}它似乎每次都返回一个空数组([]),尽管我知道我使用的是匹配关键字。
更新
让它工作是因为@引力板为我指明了正确的方向,下面是工作解决方案:
.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;
}
}
}]);发布于 2016-02-19 15:01:49
当你想要使用角的时候,你使用的是下划线过滤方法。
只需将_.filter(更改为$filter(即可。
https://stackoverflow.com/questions/35507782
复制相似问题