我有一系列记录。此数组将根据用户的权限显示不同的记录。
因此,我必须根据用户使用不同的过滤器。如何根据用户的权限创建这样一个带变量函数的表达式 -
<div ng-repeat="r in records | filter:{isVisible:true}"
上面有一个过滤表达式{isVisible:true}。我想根据用户动态分配不同的过滤器表达式。所以user2将{isCommon:'M2'}。
答案 0 :(得分:12)
过滤表达式也可以是变量:
<li ng-repeat="item in items | filter:filterExpr">{{item.name}}</li>
表达式在范围内定义:
$scope.filterExpr = { tester: true };
这是一个更完整地展示这一点的Plunker:http://plnkr.co/edit/Au8KFg?p=preview
PS:请注意@ MarkRajcok对你帖子的评论,因为非常非常重要。答案 1 :(得分:2)
2Terry Drozdowski - 绝对正确:过滤器不适用于最新版本(1.1.7)的布尔值。感谢您指出这一点 - 您必须使用引号:
<div ng-repeat="r in records | filter:{isVisible:'true'}"