【发布时间】: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