7

我从文本框中添加数字并将其放在另一个文本框中时遇到问题。我的情况是这样的:

我有一个文本框:

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

无论这个文本框上的输入是什么,这将是另一个文本框的值,如下所示:

<input type="text" value="{{ num1 + 1 }}" />

此设置成功显示但有错误。当我2013在第一个上键入时,第二个显示20131而不是2014. 我也尝试过使用这样的过滤器:

<input type="text" value="{{ num1 + 1 | number}}" />

但不幸的是,它不起作用。我错过了什么?

4

4 回答 4

13

文本框的值是一个字符串。您需要将其转换为可以使用的整数/浮点数,parseInt或者parseFloat如果您有小数。默认情况下,您的表达式中没有可用的 parseInt 方法,但您可以将其添加到控制器的范围以使其可用:

$scope.parseInt = parseInt;


<input type="text" value="{{ parseInt(num1) + 1 }}" />

你可以在这里看到这个

于 2013-07-03T09:54:35.770 回答
7

您也可以使用 input type=number 代替文本。这还有一个额外的好处,那就是提供一种与您期望得到的类型相匹配的类型。

于 2014-03-16T00:47:11.193 回答
0

num1 被解释为字符串。

初始化时使用parseInt()parseDouble()将其转换为数字。

于 2013-07-03T09:56:11.043 回答
0

我找到了一个tick方法来解决。我的情况是我需要解析类似 item.qty 的东西。但我发现<div ng-click="item.qty = parseInt(item.qty) + 1>Add</div>行不通。

最后发现这个方法可以解决

<div ng-click = "item.qty = item.qty - 1 + 2">Add</div>
于 2017-03-18T11:11:16.463 回答