我是javascript和AngularJS的新手,想知道为什么引号内的表达式没有被评估?
<span ng-show="{{remaining()}}!==0">sometext</span>
它的打印方式如下:
<span ng-show="2!==0">sometext</span>
并且无论内容如何,ng-show都不起作用。即使表达式包含在eval中,也会显示文本(和打印的表达式):
eval("{{remaining()}}!==0")
我在控制器中创建了一个函数:
<span ng-show="renderOrNot()">sometext</span>
有效,但我希望每次想要进行比较时都不必编写函数
答案 0 :(得分:35)
差不多......
使用{{}}
时,会对值进行插值,即将标记替换为表达式的结果。 ngShow只需要表达式,所以只需按原样使用该函数,它就可以工作:
<span ng-show="remaining() !== 0">sometext</span>
一般情况下,只有在显示表达/内容时才需要{{ }}
。
答案 1 :(得分:16)
您不能使用{{}}
,因为您的值是绑定的。像这样使用ng-show
:
<span ng-show="remaining() !== 0">sometext</span>