3
在過去的幾天裏,我用Angular過濾了一個數組數組並且顯示它有困難。我試過尋找類似的帖子,但我找不到解決方案。陣列的角度濾波器陣列
比如我的數據的外觀:
$scope.answers = [
{title: "Qestion1", keywords: ["dino", "dog", "cat"]},
{title: "Quessstion2", keywords: ["cat", "dog"]}
];
目前我顯示列表:
<div class="solution-box" ng-repeat="answer in pagedItems[currentPage]">
我有兩個搜索字段:
<input type="text" ng-model="title" ng-change="search1()" class="form-control" placeholder="Filter by title">
<input type="text" ng-model="keys" ng-change="search2()" class="form-control" placeholder="Filter by keywords">
搜索1()函數,它只是正常工作:
不改變filteredItems$scope.search2 = function() {
$scope.filteredItems = $filter('filter')($scope.answers, function (answer) {
return $filter('filter')(answer.keywords, function (keyword) {
if (searchMatch(keyword, $scope.keys)) {
console.log($scope.filteredItems + '/' + keyword + '|' + $scope.keys);
return true;
}
return false;
});
});
$scope.currentPage = 0;
// now group by pages
$scope.groupToPages();
};
任何人都可以請給小費什麼可以在搜索2()函數是錯誤
搜索2()函數? 雖然我正在記錄filteredItems,但它會記錄正確數量的答案,但該列表仍然保持與原來相同的大小。 我在這裏失蹤的自定義過濾器的主要邏輯是什麼?
感謝,
我建議做一個jsfiddle/plunker。 – jusopi
'$ filter('filter')'會返回你傳給它的函數返回一個真值。使用'search2',你返回另一個'$ filter('filter')'的結果,這可能是一個數組,因此不會進行過濾。你期望內部過濾器在那裏做什麼? – mgilson
我認爲$ filter('filter')在數組的一個級別上工作,所以對於內部過濾器,我想過濾關鍵字,然後用過濾的關鍵字過濾答案。這個想法是通過過濾標題和關鍵字來顯示列表。 –