【问题标题】:Angular: show a message when no results in angular ng-repeat ? (specific case) [duplicate]角度:当角度 ng-repeat 没有结果时显示一条消息? (具体案例)[重复]
【发布时间】:2015-03-19 01:11:01
【问题描述】:

我有一个特定的情况,我在手风琴中重复我的数据,我只需要在过滤器(搜索框)在 ng-repeat="sport in sports" 上没有返回任何内容时向用户显示一条消息

<input ng-model="query" placeholder="Search sports...">
   <accordion close-others="false">
       <accordion-group ng-repeat="sport in sports | filter:query"
                        ng-show="sport.leagues.length">
         <accordion-heading>
           <div ng-click="addSportToLines(sport);">
              {{::sport.name}}
           </div>
          </accordion-heading>
          <div class="list-group leagues-margin">
           <a href="javascript:void(0);" class="list-group-item"
              ng-repeat="league in sport.leagues"
              ng-class="{active: league.active}"
              ng-click="addLeagueToLines(league)">{{::league.name}}
           </a>
         </div>
       </accordion-group>
     </accordion>

【问题讨论】:

    标签: javascript angularjs


    【解决方案1】:

    试试这个,

    <div ng-show="!(sports | filter:query).length">No items</div>
    

    或者,我们可以通过将过滤后的结果分配给另一个变量来消除一个过滤器,如下所示,

    <accordion close-others="false">
           <accordion-group ng-repeat="sport in filteredSports = (sports | filter: query)"
                            ng-show="sport.leagues.length">
             <accordion-heading>
               ...
           </accordion-group>
         </accordion>
    
    <div ng-show="!filteredSports.length">No items</div>
    

    谢谢。

    【讨论】:

    • 但是这个解决方案意味着过滤器会再次遍历整个过滤器,这会影响性能,对吧?
    • @HimmetAvsar 检查我更新的代码
    • 实际上更新后不工作了。 @HimmetAvsar
    • @TheUnnamed 你得到的错误是什么?
    猜你喜欢
    • 1970-01-01
    • 2013-08-06
    • 2014-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-28
    相关资源
    最近更新 更多