可能这是最简单的事情,但是我无法以角度将字符串解析为Int。
我正在尝试做的是:
<input type="text" ng-model="num1"> <input type="text" ng-model="num2"> Total: {{num1 + num2}}
如何求和这些num1和num2值?
谢谢!
您不能(至少目前)不能使用parseInt内部角度表达式,因为它们不会直接求值。引用 文档 :
parseInt
Angular不使用JavaScript eval()来评估表达式。相反,Angular的$parse服务处理这些表达式。 角表达式不必访问全局变量喜欢 window,document或location。此限制是有意的。它可以防止意外访问全局状态- 细微错误的常见来源。
Angular不使用JavaScript eval()来评估表达式。相反,Angular的$parse服务处理这些表达式。
eval()
$parse
角表达式不必访问全局变量喜欢 window,document或location。此限制是有意的。它可以防止意外访问全局状态- 细微错误的常见来源。
window
document
location
因此,您可以total()在控制器中定义一个方法,然后在表达式中使用它:
total()
// ... somewhere in controller $scope.total = function() { return parseInt($scope.num1) + parseInt($scope.num2) } // ... in HTML Total: {{ total() }}
不过,对于像加数这样的简单操作而言,这似乎是相当庞大的。另一种方法是使用-0op 转换结果:
-0
Total: {{num1-0 + (num2-0)|number}}
…但这显然不会 解析Int 值,仅 将 它们 强制转换 为Numbers(|number过滤器阻止显示null此强制转换是否导致NaN)。因此,请选择适合您特定情况的方法。
|number
null
NaN