【发布时间】:2014-07-17 15:42:33
【问题描述】:
As demonstrated in this plunker,我想要一个 两者都更新相同的$scope 变量,以及彼此。
现在,当我更新一个输入时,$scope 变量已更改,但另一个范围的值是空白的。我只需要将一个与 data-ng-model 绑定并在另一个上使用 data-ng-change 吗?有更清洁的解决方案吗?
【问题讨论】:
As demonstrated in this plunker,我想要一个 两者都更新相同的$scope 变量,以及彼此。
现在,当我更新一个输入时,$scope 变量已更改,但另一个范围的值是空白的。我只需要将一个与 data-ng-model 绑定并在另一个上使用 data-ng-change 吗?有更清洁的解决方案吗?
【问题讨论】:
这是我将引用的example。问题是 range 是一个字符串值,而 number 是一个数字值。
在控制器中实例化一个变量并编写函数来处理转换
$scope.data = 10;
$scope.setDataAsNumber = function() {
$scope.data = parseInt($scope.data, 10);
}
创建绑定到$scope.data的所有元素
<input type="text" ng-model="data" ng-change="setDataAsNumber()">
<br>
<input type="number" ng-model="data">
<br>
<input type="range" ng-model="data" ng-change="setDataAsNumber()">
<br>
{{ data }}
我已经使用 ng-change 指令解决了这个问题。
【讨论】:
不知道为什么会这样,但是当您将 type="number" 更改为 type="text" 时,它会起作用。
我为 input type="number" 找到了这个解决方法,但似乎有点 hacky:
$scope.$watch('MyNumber',function(number) {
$scope.MyNumber = Number(number);
});
【讨论】: