我在这里挠头.我正在使用angularJS并尝试使用包含对parseInt的调用的表达式.
{{0 == 2}}
Run Code Online (Sandbox Code Playgroud)
... 按预期打印错误.)
但是,当我尝试时:
{{parseInt(0) == parseInt(2)}}
Run Code Online (Sandbox Code Playgroud)
......打印出来...... 真实!
这怎么可能?
Muh*_*sin 13
Angular不使用JavaScript
eval()来计算表达式.相反,Angular的$parse服务处理这些表达式.Angular表达式无法访问全局变量,如
window,document或location.这种限制是故意的.它可以防止意外访问全局状态 - 这是微妙错误的常见来源.
在你的HTML中
这两个parseInt(0)和parseInt(2)是不确定的在你的HTML.
所以{{undefined==undefined}}是true.Beacause parseInt是一个Javascript你不能访问function.So parseInt在侧功能{{}}.[这里parseInt不是范围变量]
解
如果你想这样做,
parseInt在你的控制器中定义,
$scope.parseInt = parseInt;
Run Code Online (Sandbox Code Playgroud)
然后你可以parseInt在你的HTML中使用该方法
那是因为parseInt你的范围没有定义.
http://jsfiddle.net/halirgb/Lvc0u55v/
| 归档时间: |
|
| 查看次数: |
427 次 |
| 最近记录: |