我有以下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>


我的问题是,如果searchcustomFilter应用于一个帖子,即使第二个和第三个都不适用,我也会得到所有三个项目。

PLNKR

如果在该PLNKR中搜索“ 1”,则将获得三项,而不仅仅是一项。

有没有一种方法可以一次过滤一个项目,而不是一次过滤所有三个项目?

最佳答案

将过滤后的值存储在这样的变量中

post in filteredPosts = (posts | filter:search | filter:customFilter)


使用filteredPosts.lengthng-show / ng-hide隐藏多余的项目

编辑:显然只是使用一个过滤的变量,并使用它来获取{{}}中的帖子(如filteredPosts[(filteredPosts.indexOf(post))])就可以了。

这是你想要的吗? Plunker

关于javascript - ng-repeat +过滤器+ ng-switch,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33333985/

10-16 20:59