也许,这是最简单的事情,但我无法将字符串解析为角度中的 Int..
我正在尝试做的事情:
<input type="text" ng-model="num1">
<input type="text" ng-model="num2">
Total: {{num1 + num2}}
如何对这些 num1 和 num2 值求和?
Thnx!
你不能(至少目前)使用parseInt
在角度表达式内部,因为它们不是直接求值的。引用the doc https://docs.angularjs.org/guide/expression:
Angular 不使用 JavaScripteval()
来评估表达式。
相反 Angular 的$parse
服务处理这些表达式。
角度表达式无法访问全局变量,例如window
, document
or location
。这个限制是有意为之的。它
防止意外访问全局状态——一个常见的来源
微妙的错误。
所以你可以定义一个total()
控制器中的方法,然后在表达式中使用它:
// ... somewhere in controller
$scope.total = function() {
return parseInt($scope.num1) + parseInt($scope.num2)
}
// ... in HTML
Total: {{ total() }}
尽管如此,对于像添加数字这样简单的操作来说,这似乎相当庞大。另一种方法是将结果转换为-0
op:
Total: {{num1-0 + (num2-0)|number}}
...但这显然不会parseInt值,仅cast他们到数字(|number
过滤器防止显示null
如果这个转换结果NaN
)。因此,请选择适合您的具体情况的方法。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)