我遇到了一个AngularJS过滤器,而不是将输入字段中的数值更改为格式化数字i.e 2500 becomes 2,500
,当应用于modal
时,它会解析为整数。
我很想知道是否可以添加小数点并保留用户的格式,以便2500.24
变为2,500.24
。
脚本如下:
angular.directive('format', function ($filter) {
'use strict';
return {
require: '?ngModel',
link: function (scope, elem, attrs, ctrl) {
if (!ctrl) {
return;
}
ctrl.$formatters.unshift(function () {
return $filter('currency')(ctrl.$modelValue, '', 2);
});
ctrl.$parsers.unshift(function (viewValue) {
var plainNumber = viewValue.replace(/[\,]/g, ''),
b = $filter('currency')(plainNumber, '', 2);
elem.val(b);
return plainNumber;
});
}
};
});
我使用的模式是:
<input format pattern="[0-9]+([\.,][0-9]+)*" />
答案 0 :(得分:0)
您可以使用插件ng-currency-mask。
https://github.com/vtex/ng-currency-mask
var app = angular.module('app', ['vtex.ngCurrencyMask']);
<input type="text" name="value" placeholder="0.00" ng-model="value" currency-mask />