一尘不染

如何在Angular.js中解析

angularjs

可能这是最简单的事情,但是我无法以角度将字符串解析为Int。

我正在尝试做的是:

<input type="text" ng-model="num1">
<input type="text" ng-model="num2">

Total: {{num1 + num2}}

如何求和这些num1和num2值?

谢谢!


阅读 275

收藏
2020-07-04

共1个答案

一尘不染

您不能(至少目前)不能使用parseInt内部角度表达式,因为它们不会直接求值。引用
文档

Angular不使用JavaScript eval()来评估表达式。相反,Angular的$parse服务处理这些表达式。

角表达式不必访问全局变量喜欢 windowdocumentlocation。此限制是有意的。它可以防止意外访问全局状态-
细微错误的常见来源。

因此,您可以total()在控制器中定义一个方法,然后在表达式中使用它:

// ... somewhere in controller
$scope.total = function() { 
  return parseInt($scope.num1) + parseInt($scope.num2) 
}

// ... in HTML
Total: {{ total() }}

不过,对于像加数这样的简单操作而言,这似乎是相当庞大的。另一种方法是使用-0op 转换结果:

Total: {{num1-0 + (num2-0)|number}}

…但这显然不会 解析Int 值,仅 它们 强制转换
为Numbers(|number过滤器阻止显示null此强制转换是否导致NaN)。因此,请选择适合您特定情况的方法。

2020-07-04