使用angularjs内置过滤器从代码中过滤特定属性

时间:2015-03-31 20:52:42

标签: javascript angularjs angularjs-filter

我们如何根据代码中的内置过滤器的特定属性进行过滤? 我知道如何从标记 -

这样做
<li ng-repeat="user in users | filter:{status:status}">{{user.name}}</li>

当属性名称是变量时,这似乎是一个特殊问题。我在jsfiddle中重新创建了问题 - http://jsfiddle.net/n925b20L/

1 个答案:

答案 0 :(得分:2)

如果需要使用存储在变量中的动态密钥构造对象,则应使用bracket notation

$scope.$watch('status', function(){
    var filter = {};
    filter[$scope.filterby.val] = $scope.status;
    $scope.filtered = $filter('filter')($scope.users, filter);
    console.log($scope.filtered);
});

演示: http://jsfiddle.net/n925b20L/2/