Ng开关在String.length-AngularJS下工作不正常

Ng开关在String.length-AngularJS下工作不正常,angularjs,string-length,ng-switch,Angularjs,String Length,Ng Switch,我正在开发一个商店应用程序,需要根据响应显示两个不同的字符串 如果我收到没有项目标题的响应,我需要显示“未找到项目标题”,否则,我需要显示项目标题,限制为一定数量的字符 这是我的密码: <div ng-switch on="item.title"> <div ng-switch-when="!item.title.length"> <p class="prod-title cursor-pointer" ng-click="searchC

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

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

这是我的密码:

<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>

{{item.title='找不到标题'}}

{{item.title | limito:60}

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


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

当您没有可用的标题时,使用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>

找不到标题

{{item.title}


使
ng开关类似于:

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

当前您所拥有的意味着
如果
item.title
(表达式)等于true
(!item.title.length==item.title)
输入第一个块
在任何其他情况下,输入第二个


能否将
{{item.title='title Not Found'}}}
替换为
title Not Found
我已经尝试了title Not Found和{{title Not Found}}两种方法,但都没有成功。即使您能够在工作时获得ng,您也应该注意,ng switch when不允许表达式,就像koox00所说的那样。它必须是要比较的文本值。我猜当你期望你的标题长度为零时,它实际上是一个空值,导致事情爆炸。ng if解决方案实际上是检查属性是否为null,而不是长度是否为零……但很高兴您现在有了解决方案。@TSmith
ng switch when
不能是表达式,但
ng switch on
可以有表达式,请参见。@koox03我知道这一点。我的评论与ng switch的工作原理并不矛盾。您好,谢谢您的回答,但是,它似乎不起作用。它似乎在Plunker中起作用,但在我的应用程序中不起作用。看看上面@TSmith写的内容。我不明白为什么它在您的应用程序中不起作用。无论如何,我只是指出了您逻辑中的缺陷,@fablexis解决方案最适合您的情况,因为您只有一个条件:)