Angular:使用相同的过滤器进行3次不同的ng-repeat,当没有返回任何内容时显示消息(?)

时间:2015-01-20 20:39:05

标签: javascript angularjs

我有一个应用程序,我有3个不同的ng-repeat,但使用相同的过滤器,ng-repeat="lineItem in lineItems | filter:search"ng-repeat="line in lineLeague | filter:search"ng-repeat="lineLeague in lineItem | filter:search",这是输入{{1现在,我需要的是,当用户搜索某些内容时,如果搜索到的任何参数没有返回任何内容,则会显示一条消息,即:没有要显示的行

我会把我的代码放在这里,告诉我发生了什么,这实际上非常奇怪,因为在另一个视图中我有相同的情况,我用这种方式解决了,see my Plunker(只是输入一些无法识别的东西,所以你会看到我的错误信息。)

现在,请看下面我的angular / html,并告诉我在这个特例中我能做些什么:

<input ng-model="search"/>

这就是我的尝试:

<input ng-model="search"/>
  <!--first filter-->
  <div ng-repeat="lineItem in lineItems | filter:search">
    <!--second filter-->
    <div ng-repeat="lineLeague in lineItem | filter:search">>

      <h3 >{{:: lineLeague[0].leagueName}}</h3>

         <table>
          <thead>
            <tr>
               <th>Time</th>
               <th>#</th>
               <th>Team</th>
               <th>Spread</th>
               <th>Total</th>
               <th>Money Line</th>
             </tr>
            </thead>

            <!--third filter-->
            <tbody ng-repeat="line in lineLeague | filter:search">

              <tr>
               <td colspan="6">{{:: line.gameName }}</td>
              </tr>

             </tbody>

          </table>

我的要求是:你知道有相同的过滤器,但有3个不同的<div ng-show="!(lineItems | filter:query).length">No lines to show</div> 所以用户可以选择查找...让我们说3个不同的标准,我想要的是如果用户在搜索框中键入与3个条件中的任何一个都不匹配的内容,然后消息出现。

1 个答案:

答案 0 :(得分:1)

我试过检查长度是否为&lt; 1而不是使用!并显示您的错误消息。

<div role="alert" ng-show="(sports | filter:query).length < 1">No sports to show</div>

See here in plunker