我有一个ng-repeat使用这样的过滤器:
#1 <div class="contestReports" ng-repeat="contest in contests | filter:{votingOver:true}"> <contestreport></contestreport> </div>
我想让客户能够过滤它,所以我已经将过滤器分配给这样的变量:
#2 <div ng-init="reportFilter = {votingOver:true}"></div> <div class="contestReports" ng-repeat="contest in contests | filter:reportFilter"> <contestreport></contestreport> </div>
代码#1正在运行,但代码#2不行,我不知道为什么.
您是否也尝试包装ng-init
<div ng-init="(reportFilter = '{votingOver:true}')"></div>
但是,正如我在之前的评论中所述 – angularjs documentation表示在大多数情况下使用ngInit是一种不好的做法.因此,如果可能,这不应该是您的问题的解决方案.
你的#2代码实际上有效,请检查这个插件 – http://plnkr.co/edit/dBDyYPd3ZoUVdXngu52t?p=preview
//html <div ng-init="reportFilter = {votingOver:false}"></div> <div class="contestReports" ng-repeat="contest in contests | filter:reportFilter"> {{contest | json}} </div> </div> //js in controller $scope.contests = [ {id:1,title:'1',votingOver:false},{id:2,title:'2',votingOver:true},{id:3,title:'3',votingOver:true} ];
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。