Angular: 删除开头的错误信息,显示直到用户搜索东西(?)

Angular: Remove error message at the beginning, show it until the user search stuff (?)

我在网络应用程序中遇到了一些小问题,现在,我在移动应用程序中遇到了同样的问题,但我无法像在网络应用程序中那样解决它。

Look at this video here

如您所见,用户登录,一开始您会看到横幅 "Did not match any search criteria",这是我想避免的, 只有当过滤器 returns 什么都没有时才必须显示该横幅,而不是在用户未在搜索框中键入任何内容时显示在开头。

现在,看看我的代码:

<ion-content>
 <!--search input-->
 <label class="item">
   <input type="search" ng-model="query">
 </label>
 <!--this is the banner-->
 <div ng-show="!sportsFilter.length">
  <i class="icon"> Did not match any search criteria</i>
 </div>
 <!--here is what I am filtering-->
 <div ng-repeat="sport in sportsFilter = (sports | filter:query)"
      ng-show="sport.leagues.length">
 </div>
</ion-content>

试试这个

<div  ng-repeat="sport in sportsFilter = (sports | filter:query)">
<div ng-show="!sportsFilter.length">
  <i class="icon"> Did not match any search criteria</i>
 </div>
 <!--here is what I am filtering-->
 <div ng-show="sport.leagues.length">
 </div>
</div>

实际上这是正确的做法。

<div ng-show="!sportsFilter.length && query.length">
 <i class="icon"> Did not match any search criteria</i>
</div>

通常在加载时 sportsFilter 应该是 sportsFilter = undefined

<div ng-show="!!sportsFilter && sportsFilter.length == 0">
   <i class="icon"> Did not match any search criteria</i>
</div>