更新:我想我并没有真正很好地查看文档,但是您绝对可以使用具有此语法的过滤器过滤器(请参阅此小提琴)来按对象上的属性进行过滤:
<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);
};
网址:
<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;
};
});
网址:
<li ng-repeat="user in users | isStatus:3">
请注意,此过滤器假定status
数组中的对象中有一个属性,这可能会降低其可重用性,但这只是一个示例。您可以阅读本文以了解有关创建过滤器的更多信息。