【问题标题】:Ng-Switch not Working properly with String.length - AngularJSNg-Switch 不能与 String.length 一起正常工作 - AngularJS
【发布时间】:2016-09-12 08:53:51
【问题描述】:

我正在开发一个商店应用程序,我需要根据响应显示 2 个不同的字符串。

如果我收到没有项目标题的响应,我需要显示“未找到项目标题”,否则,我需要显示项目的标题,限制为一定数量的字符。

这是我的代码:

<div ng-switch on="item.title">
  <div ng-switch-when="!item.title.length">
    <p class="prod-title cursor-pointer" 
       ng-click="searchCtrl.openItemTab(item,event)">
         {{ item.title = 'Title Not Found'}}</p>
  </div>
  <div ng-switch-default>
    <p class="prod-title cursor-pointer" 
       ng-click="searchCtrl.openItemTab(item,event)">
         {{ item.title | limitTo:60 }}</p>
  </div>
</div>

当长度大于 0 时,我可以看到项目标题,但是,当长度等于 0 时,我看不到“未找到项目标题”。

有什么建议吗?提前致谢。

【问题讨论】:

  • 你能不能把{{ item.title = 'Title Not Found'}}换成Title Not Found
  • 我已经尝试过 Title not found 和 {{Title Not Found}} 都没有成功。
  • 即使你能够让 ng-if 工作,你应该注意 ng-switch-when 不允许表达式,就像 koox00 说的那样。它必须是要与之比较的文字值。我猜想当你期望你的标题长度为零时,它实际上是一个空值,导致事情爆炸。 ng-if 解决方案实际上是检查属性是否为空,而不是长度是否为零……但很高兴你现在有一个解决方案。
  • @TSmith ng-switch-when 不能是表达式,但 ng-switch on 可以有表达式,请参阅 ngSwich
  • @koox03 我知道。我的评论与 ng-switch 的工作原理并不矛盾。

标签: angularjs string-length ng-switch


【解决方案1】:

当您没有可用的标题时,使用 ng-if 指令显示“找不到标题”。

<p ng-if='!item.title' class="prod-title cursor-pointer" ng-click="searchCtrl.openItemTab(item,event)">
         Title Not Found
</p>

<p ng-if='item.title' class="prod-title cursor-pointer" ng-click="searchCtrl.openItemTab(item,event)">
             {{item.title}}
    </p>

【讨论】:

    【解决方案2】:

    ng-switch 设为:

    <div ng-switch on="item.title.length">
        <div ng-switch-when="0">
    

    目前你所拥有的意思
    如果item.title(表达式)等于真(!item.title.length == item.title)进入第一个块
    在任何其他情况下输入第二个。

    Plunker

    【讨论】:

    • 您好,感谢您的回答,但是,它似乎不起作用。
    • 它似乎在 Plunker 中有效,但在我的应用程序中无效。看看上面@TSmith 写了什么。
    • 我不明白为什么它在您的应用程序中不起作用..无论如何我只是指出您的逻辑缺陷,@fablexis 解决方案最适合您的情况,因为您只有一个条件 :)
    猜你喜欢
    • 2016-04-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-08
    • 2019-06-24
    • 2018-11-10
    相关资源
    最近更新 更多