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,而不是长度是否为零……但很高兴您现在有了解决方案。@TSmithng switch when
不能是表达式,但ng switch on
可以有表达式,请参见。@koox03我知道这一点。我的评论与ng switch的工作原理并不矛盾。您好,谢谢您的回答,但是,它似乎不起作用。它似乎在Plunker中起作用,但在我的应用程序中不起作用。看看上面@TSmith写的内容。我不明白为什么它在您的应用程序中不起作用。无论如何,我只是指出了您逻辑中的缺陷,@fablexis解决方案最适合您的情况,因为您只有一个条件:)