angularjs – 为Angular JS中的对象变量指定一个过滤器

前端之家收集整理的这篇文章主要介绍了angularjs – 为Angular JS中的对象变量指定一个过滤器前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个ng-repeat使用这样的过滤器:
  1. #1
  2. <div class="contestReports" ng-repeat="contest in contests | filter:{votingOver:true}">
  3. <contestreport></contestreport>
  4. </div>

我想让客户能够过滤它,所以我已经将过滤器分配给这样的变量:

  1. #2
  2. <div ng-init="reportFilter = {votingOver:true}"></div>
  3. <div class="contestReports" ng-repeat="contest in contests | filter:reportFilter">
  4. <contestreport></contestreport>
  5. </div>

代码#1正在运行,但代码#2不行,我不知道为什么.

您是否也尝试包装ng-init
  1. <div ng-init="(reportFilter = '{votingOver:true}')"></div>

但是,正如我在之前的评论中所述 – angularjs documentation表示在大多数情况下使用ngInit是一种不好的做法.因此,如果可能,这不应该是您的问题的解决方案.

你的#2代码实际上有效,请检查这个插件http://plnkr.co/edit/dBDyYPd3ZoUVdXngu52t?p=preview

  1. //html
  2. <div ng-init="reportFilter = {votingOver:false}"></div>
  3. <div class="contestReports" ng-repeat="contest in contests | filter:reportFilter">
  4. {{contest | json}}
  5. </div>
  6.  
  7. </div>
  8.  
  9. //js in controller
  10. $scope.contests = [
  11. {id:1,title:'1',votingOver:false},{id:2,title:'2',votingOver:true},{id:3,title:'3',votingOver:true}
  12. ];

猜你在找的Angularjs相关文章