javascript - 具有 gettersetter 的 Angular 1.4.x 数字字段不适用于十进制数

标签 javascript angularjs numeric getter-setter

我在 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/

相关文章:

javascript - jQuery 插件未正确定位指令

c++ - 如何编写一个 boost::spirit::qi 解析器来解析从 0 到 std::numeric_limits<int>::max() 的整数范围?

r - 热图返回错误 : 'x' must be a numeric matrix, 但 x 是数字矩阵

javascript - Sails.js REST 无操作

javascript - 在javascript中绘制两种不同颜色的圆弧

javascript - ng-transclude 会停止 Angular.js 中的事件传播吗?

javascript - 输入字段,强制格式 00 :00. 00

angularjs - 使用 AngularJS 将数据发送到 php 脚本

javascript - 如何在 Polymer 1.0 中使用 iron-dropdown?

r - R中是否有数据类型 "Decimal"?