如何通过布尔表达式过滤来自ng.repeat过滤器内的控制器的变量?

时间:2017-04-25 16:31:44

标签: angularjs

如何根据控制器中声明的变量的布尔表达式进行过滤?

类似的东西:

<div ng-repeat="user in users | filter:{someVarFromController==true}">
    <div>
      {{user.name}}
    </div>
</div>

我管理它才能使表达式使用集合属性 例如:

<div ng-repeat="user in users | filter:{IsDomestic: true}">

1 个答案:

答案 0 :(得分:0)

在控制器中定义一个函数,该函数为特定元素返回true或false,并在过滤器中使用该函数。

$scope.showUser = function(user){
    // logic to decide if element should be displayed, or just:
    return $scope.someVarFromController;    
};
<div ng-repeat="user in users | filter:showUser">

观察:也许我错过了一些东西,但我不确定为什么你只想用$scope中的变量进行过滤,而没有引用{{1}中的特定元素}。这样就可以显示所有元素,也可以不显示任何元素,在这种情况下,最好在较高级别使用ng-repeatng-if