更新:我想我对文档的了解并不足够,但是您绝对可以使用具有以下语法的过滤器过滤器(请参阅此小提琴)来按对象的属性过滤:
<tr ng-repeat="user in users | filter:{status:4}">
如果有帮助,这是我的原始答案:
使用过滤器过滤器将无法传递参数,但是至少可以做两件事。
1)在范围变量中设置要过滤的数据,并在您的过滤器函数中引用该数据,例如fiddle。
JavaScript:
$scope.status = 1;
$scope.users = [{name: 'first user', status: 1},
{name: 'second user', status: 2},
{name: 'third user', status: 3}];
$scope.isStatus = function(user){
return (user.status == $scope.status);
};
HTML:
<li ng-repeat="user in users | filter:isStatus">
要么
2)创建一个新的过滤器,该过滤器接受一个类似fiddle的参数。
JavaScript:
var myApp = angular.module('myApp', []);
myApp.filter('isStatus', function() {
return function(input, status) {
var out = [];
for (var i = 0; i < input.length; i++){
if(input[i].status == status)
out.push(input[i]);
}
return out;
};
});
HTML:
<li ng-repeat="user in users | isStatus:3">
请注意,此过滤器假定status
数组中的对象中有一个属性,这可能会使它的可重用性降低,但这只是一个示例。您可以阅读此内容以获取有关创建过滤器的更多信息。