我有一个棘手的问题
HTML:
ng-repeat="item in obj.Items | filter:someFilter"
JS:
$scope.someFilter = function (item) { ... }
哪个有效。但问题是,我需要能够在控制器内部的某处手动调用someFilter
。
好的,我知道我可以执行$filter("someFilter")(...)
,但该过滤器需要item object
中的ng-repeat
。那么,我该如何提供这个论点?
答案 0 :(得分:1)
请针对提出的问题找到以下代码:
angular.forEach(obj.Items, function (key, value) {
$scope.someFilter(value);
});
答案 1 :(得分:0)
您可以通过两种方式定义过滤器。
__init__
的函数。这是你的方式。 在第二种情况下,当您致电$scope
时,作为参数,您需要传递数组来过滤您的商品。
$filter
和JS控制器
<form name="ExampleForm">
Filter by $scope function fillArr
<div ng-repeat="a in arr|filter:fillArr">
{{a}}
</div>
Filter by filter filArrFilter
<div ng-repeat="a in arr|filArrFilter">
{{a}}
</div>
Filtered in $scope manualy
<div ng-repeat="a in filteredArr">
{{a}}
</div>
</form>
和JS过滤器
$scope.arr = [1, 2, 3, 4, 5, 6, 8];
$scope.fillArr = function(item) {
return item % 2 == 0;
}
$scope.filteredArr = $filter('filArrFilter')($scope.arr);
})