2

我有一系列记录。该数组将根据用户的权限显示不同的记录。

因此,我必须根据用户使用不同的过滤器。我如何创建这样一个表达式,它根据用户的许可采用变量函数 -

<div ng-repeat="r in records | filter:{isVisible:true}"

上面有一个过滤器表达式 {isVisible:true}。我想根据用户动态分配不同的过滤器表达式。所以 user2 将有 {isCommon: 'M2'}。

4

2 回答 2

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 对您的帖子的评论,因为这非常重要。

于 2013-01-12T19:57:38.527 回答
2

2Terry Drozdowski - 绝对正确:过滤器不适用于最新版本(1.1.7)的布尔值。感谢您指出这一点 - 您必须使用引号:

<div ng-repeat="r in records | filter:{isVisible:'true'}"
于 2013-08-20T08:27:39.030 回答