参见英文答案 >
How to parseInt in Angular.js5个
我在这边抓我的头我使用angularJS并尝试使用包含调用parseInt的表达式.
我在这边抓我的头我使用angularJS并尝试使用包含调用parseInt的表达式.
{{0 == 2}}
…按预期打印出错误.)
但是,当我试图:
{{parseInt(0) == parseInt(2)}}
…它打印出来…真的!
怎么可能呢?
Angular does not use JavaScript’s
eval()
to evaluate expressions.
Instead Angular’s$parse
service processes these expressions.Angular expressions do not have access to global variables like
window
,document
orlocation
. This restriction is intentional. It
prevents accidental access to the global state – a common source of
subtle bugs.
在你的html
parseInt(0)和parseInt(2)在您的html中都是未定义的.
所以{{undefined == undefined}}是true.Beacause parseInt是一个Javascript函数,所以你无法访问边{{}}中的parseInt函数. [这里parseInt不是范围变量]
解
如果你想这样做,
在控制器中定义parseInt,
$scope.parseInt = parseInt;
那么你可以在html中使用parseInt方法