13

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

哪个有效,但我不希望每次我想进行比较时都必须编写函数

4

2 回答 2

35

差不多好了 ...

当您使用{{}}时,这些值被插值,即标记被替换为表达式的结果。ngShow 只需要表达式,所以只需按原样使用函数,它就会起作用:

<span ng-show="remaining() !== 0">sometext</span>

通常,您只需要{{ }}何时显示您的表达式/内容。

于 2013-07-03T09:41:10.020 回答
16

你不能使用它,{{}}因为你的值是绑定的。像这样使用ng-show

<span ng-show="remaining() !== 0">sometext</span>
于 2013-07-05T14:05:24.130 回答