我有以下ng-repeat
一次获取3个项目:
<div ng-repeat="post in posts | filter:search | filter:customFilter">
<span ng-switch="" on="$index % 3">
<div class="row" ng-switch-when="0">
<div class="col-sm-4">
{{posts[(posts.indexOf(post))]}}
</div>
<div class="col-sm-4">
{{posts[(posts.indexOf(post + 1))]}}
</div>
<div class="col-sm-4">
{{posts[(posts.indexOf(post + 2))]}}
</div>
</div>
</span>
</div>
我的问题是,如果
search
或customFilter
应用于一个帖子,即使第二个和第三个都不适用,我也会得到所有三个项目。PLNKR
如果在该PLNKR中搜索“ 1”,则将获得三项,而不仅仅是一项。
有没有一种方法可以一次过滤一个项目,而不是一次过滤所有三个项目?
最佳答案
将过滤后的值存储在这样的变量中
post in filteredPosts = (posts | filter:search | filter:customFilter)
使用
filteredPosts.length
加ng-show / ng-hide
隐藏多余的项目编辑:显然只是使用一个过滤的变量,并使用它来获取
{{}}
中的帖子(如filteredPosts[(filteredPosts.indexOf(post))]
)就可以了。这是你想要的吗? Plunker
关于javascript - ng-repeat +过滤器+ ng-switch,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33333985/