Angular JS,为ng-repeat添加过滤条件

时间:2015-03-08 19:44:09

标签: javascript jquery angularjs angularjs-ng-repeat

我有这个:

<td ng-repeat="link in fund.pdfLinks track by $index" class="fundLitCmpnt-linkWrap"><a class="fundLitCmpnt-link" target="_blank" href="{{link.url}}"><i class="sprite pdfIcon"></i></a></td>

如果link.url是特定字符串(/myfolder/mypage.aspx),我想在ng-repeat中添加一个过滤器。我想不显示锚标记。

我试过这个:

<td ng-repeat="link in fund.pdfLinks track by $index | filter:link.url'!=/myfolder/mypage.aspx'}" class="fundLitCmpnt-linkWrap"><a class="fundLitCmpnt-link" target="_blank" href="{{link.url}}"><i class="sprite pdfIcon"></i></a></td>

如何将link.url与特定字符串进行比较?请帮忙。

2 个答案:

答案 0 :(得分:2)

在你的情况下,最好的方法是使用ng-hide或ng-if,但你也可以通过过滤器实现它

angular.module('YourModule').filter('customFl',function(url){
return url !='your_url'
})

<td ng-repeat="link in fund.pdfLinks track by $index | customFl' " class="fundLitCmpnt-linkWrap"><a class="fundLitCmpnt-link" target="_blank" href="{{link.url}}"><i class="sprite pdfIcon"></i></a></td>

快乐帮助!

答案 1 :(得分:1)

尝试使用ng-hide。

如果链接url计算字符串

,它将隐藏当前元素
<td ng-repeat="link in fund.pdfLinks track by $index"
 ng-hide="link.url=='/myfolder/mypage.aspx'"
 class="fundLitCmpnt-linkWrap">
<a class="fundLitCmpnt-link" target="_blank" href="{{link.url}}">
<i class="sprite pdfIcon"></i>
</a>
</td>

如果你想隐藏内部元素,可以单独使用ng-hide,也可以使用span / div,如

<td ng-repeat="link in fund.pdfLinks track by $index"

 class="fundLitCmpnt-linkWrap">
   <div ng-hide="link.url=='/myfolder/mypage.aspx'">
      <a class="fundLitCmpnt-link" target="_blank" href="{{link.url}}">
       <i class="sprite pdfIcon"></i>
      </a>
 </div>
</td>