我尝试做的是创建一个输入数字,在模糊时将其值转换为十进制值(如货币),但有几个问题正在做...
HTML(Jade / Pug):
input.input-clean(
id="itemAmount"
name="itemAmount"
type="number"
placeholder="0.00"
step="0.01"
ng-pattern="/^[0-9]+(\.[0-9]{1,2})?$/"
ng-model="item.amount"
decimal-input
required
)
decimalInput
指令:
App.directive('decimalInput', function ($filter) {
function link(scope, el, attrs, ngModelCtrl) {
var $el = $(el);
function formatter(value) {
var formattedValue = $filter('number')(value, 2);
$(el).val(formattedValue);
ngModelCtrl.$setViewValue(value);
}
$el.on('blur', function () {
var $this = $(this);
formatter($this.val());
});
}
return {
require: '^ngModel',
scope: true,
link: link
};
});
发生的事情是第一个数字号码没有触发...我需要按两次才能插入第一个数字......
number
过滤器也不会转换我的输入...
如果我输入12345678
,结果为12345678
,而我预计结果为:12,345,678.00
更新 这是我收到的警告:
指定值" 1,123.00"不是有效的数字。价值必须 匹配以下正则表达式: ? - (\ d + | \ d + \ d + |。。\ d +)?(?[EE] [ - +] \ d +)