我是角色新手,我想知道如何在ng-repeat指令中应用和删除过滤器,但我想在某些条件下删除或添加过滤器,例如使用$ stateParams更改网址
if($stateParams.x){
//remove unique filter
}
else{
//add unique filter
}
下面是我正在处理的代码
<div ng-app="app" ng-controller="MyCtrl as item">
<div >
<ul>
<li ng-repeat="item in items | unique: 'column'" myfilter>
{{ item.column }}
</li>
</ul>
</div>
</div>
这是一个我正在尝试这样做的plunker链接,但它无法正常工作。 http://plnkr.co/edit/zwy7slwOPfvLqJPVV1sk?p=preview
答案 0 :(得分:0)
如果您不想编写自己的过滤器,可以使用外部ng - 如果是这样的话:
<div ng-app="app" ng-controller="MyCtrl as item">
<div>
<ul ng-if="$stateParams.x">
<li ng-repeat="item in items | unique: 'column'" myfilter>
{{ item.column }}
</li>
</ul>
<ul ng-if="!$stateParams.x>
<li ng-repeat="item in items">
{{ item.column }}
</li>
</ul>
</div>
</div>
答案 1 :(得分:0)
如果您使用一些标志传入额外的过滤器中的其他参数,以启用和禁用唯一过滤器,则可以执行此操作。换句话说,如果flag为true,那么你将使用唯一的逻辑,否则你将返回所有项目。它已被回答here以及一个样本