我在 chrome(47) 中遇到问题,当结合使用类型数字输入和 ng-model-options="{ getterSetter: true }"时,不允许您在字段中输入小数。
使用 getterSetter:(不工作)
<input ng-model="amount" ng-model-options="{ getterSetter: true }" step="0.01" type="number" >
没有 getterSetter:(有效)
<input ng-model="_amount" step="0.01" type="number">
查看 plunker 的演示 http://plnkr.co/edit/qu8UXCUtkJaFwjgGE1NX?p=preview
最佳答案
发生的事情是,当您声明一个 getterSetter
函数时,每次您修改输入的值时都会调用该函数。
所以当你写“12”时。该函数正在被调用,但它不是一个有效的数字,所以它去掉了“。”用于提供有效值。
尝试输入“123”,然后添加一个“.”在有效的数字之间,例如“12.3”!
编辑
我已经修复了你的代码,现在它可以工作了。
试试这个:
$scope.amount = function(newValue) {
return arguments.length ? ($scope._amount = newValue) : $scope._amount;
};
这是一个 fork 的 plunkr:http://plnkr.co/edit/xZtZLH5He4ZnjkqhFApY?p=preview
关于javascript - 具有 gettersetter 的 Angular 1.4.x 数字字段不适用于十进制数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34440116/