可能这是最简单的事情,但我无法解析一个字符串到Int在角度..
我想做什么:
<input type="text" ng-model="num1"> <input type="text" ng-model="num2"> Total: {{num1 + num2}}
如何求和这些num1和num2值?
日Thnx!
您不能(至少在此刻)在角度表达式中使用parseInt,因为它们不直接评估.报价
the doc:
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.
因此,您可以在控制器中定义一个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}}
…但是这显然不会解析它们的值,只能将它们转换为Numbers(如果此转换导致NaN,则数字过滤器会阻止显示null).所以选择适合你特定情况的方法.