首页 > 解决方案 > Angular js过滤结果条件

问题描述

我在我的应用程序中使用了过滤器,但想要一些结果:

当跟踪结果为无时,我也想隐藏朋友

我在 plunker 上创建了一个示例应用程序并相应地显示了相应的消息:

https://plnkr.co/edit/HaVGA4C2qnKjaBUOBlj0?p=preview

 <div ng-controller="repeatController">
   <p ng-show="results.length==0">
      No freinds
   </p>
   <p ng-show="play.length==0">
      No tracks
   </p>
   <input type="search" ng-model="q" placeholder="filter friends..." aria-label="filter friends" />
   <input type="search" ng-model="t" placeholder="filter tracks..." aria-label="filter friends" />
   <ul class="example-animate-container">
      <li  ng-repeat="friend in friends | filter:q as results track by friend.name">
         {{friend.name}} who is {{friend.age}} years old.
         <span  ng-repeat="data in friend.result | filter:t as play">
         <br> {{data.track}}.<br>
         </span>
      </li>
      <li  ng-if="results.length === 0"> 
         <strong>No results found...</strong>
      </li>
   </ul>
</div>

如果没有选择轨道,我如何才能显示消息No track only 一次,就像:

取自上面的代码想要这个:

<p ng-show="play.length==0">
     No tracks
</p>

我想在过滤器返回零结果时显示消息,来自所有朋友的跟踪,即搜索全部freinds.tracks,如果没有选择,则显示消息。

标签: angularjsangularjs-filter

解决方案


您应该创建一个自定义过滤器。通过在一个过滤器中评估多个条件,它将获得“性能”。

 $scope.filterData = function (item) {
 return (item.SECURITYCLASS === 90 || item.SECURITYCLASS === 93);
  }

在你看来:

 <div ng-repeat="item in data | filter:filterData">
{{::item}}
 </div>

推荐阅读