2
我想過濾結果ng-repeat
,但具有「智能搜索」功能,即。使用多個關鍵字進行搜索。該集合是一個複雜的對象數組,包含對象。AngularJS過濾器:智能搜索
根據Angular Docs: $filter,你可以使用{$: "keyword"}
與過濾功能deepfilter,但我還沒有得到它的工作。
段:
.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;
}
}
它似乎返回一個空數組([]
)每一次,儘管我知道我使用的是匹配的關鍵字
UPDATE
得到它的工作感謝@gravityplanx指出我在正確的方向,下面是工作解決方案:
.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;
}
}
}]);
獲取'$ filter is not defined' now –
[this](http://stackoverflow.com/questions/16706583/angularjs-filter-is-undefined-when-trying-to-get-filtered-data)is可能的罪魁禍首,但診斷一個'未定義'錯誤而無法訪問代碼庫是徒勞無益的。 – gravityplanx
是的,的確,這是問題所在,你的回答引發了我的問題以及如何糾正它,我將編輯我的OP並將工作代碼放在那裏。感謝您的幫助 –