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

Filter on a specific property from code using angularjs built-in filter

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

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

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

如果您需要使用存储在变量中的动态键构造对象,您应该使用 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/