是否可以通过将它们与数组进行比较来过滤$ scope.items?并将结果放在$ scope.itemsfiltered中? 以下网址解释了所有内容(向下滚动):http://angular-tips.com/blog/2014/08/tip-accessing-filtered-array-outside-ng-repeat/
我尝试过一个功能,将所有项目与一些数组值进行比较,然后才有效。 但结果只会在我将结果分配给$ scope.items时显示,而不是在我将其分配给$ scope.itemsfiltered时。
所以A)类似于上面的内容(见下面的代码)
或者B)更简单的东西,正则表达式或者可以比较的东西...所以模型"过滤主题"没有必要,只需:$ scope.filterByRegexOrSomethingElse = / compare1 | compare2 /;
<div class="item" ng-repeat="item in (itemsfiltered = (items | filter:filterByArr))">
{{ title }}
</div>
$scope.filterByArray = function () {
var arr = ['foo', 'bar'];
// do some magic here
var filtered = [];
for (var i = 0; i < items.length; i++) {
// resetScope($scope);
if (_.contains(arr, items[i].categorie)) {
filtered.push( items[i] );
}
}
$scope.itemsfiltered = filtered;
};
答案 0 :(得分:0)
$scope.filterCategory = function() {
if ($(this)[0].category) {
if ($scope.categories.indexOf($(this)[0].filter.value) == -1) {
$scope.categories.push($(this)[0].filter.value);
}
} else {
var indexToRemove = $scope.categories.indexOf($(this)[0].filter.value);
if (indexToRemove != -1) {
$scope.categories.splice(indexToRemove, 1);
}
}
$scope.queryFilter = function(item) {
return $scope.categories.length ? _.contains($scope.categories, item.categorie) : true;
};
};