大家好,
我在输入元素上使用此货币格式指令,在我输入
时格式化为货币 (function() {
var currencyFormatDir = function($filter) {
return {
require: '?ngModel',
link: function(scope, elem, attrs, ctrl) {
if (!ctrl)
return;
ctrl.$formatters.unshift(function(a) {
var abs = $filter(attrs.currencyFormat)(ctrl.$modelValue);
return $filter(attrs.currencyFormat)(ctrl.$modelValue);
});
ctrl.$parsers.unshift(function(viewValue) {
var plainNumber = viewValue.replace(/[^\d|\-+|\.+]/g, '');
elem.val($filter('number')(plainNumber));
if (plainNumber === 0) {
return "";
}
else {
return plainNumber;
}
});
}
};
};
angular.module('myApp').directive('currencyFormat', ['$filter', currencyFormatDir]);})();
但是,如果我想更换阀门,例如:说我有数字156而我想将其更改为12,356 然后我将光标移动到图1的右侧并输入23 但如果我在这里做到那么我最终会得到数字12,563 发生这种情况是因为光标移动到最后。我不知道为什么会这样,有人可以帮我弄清楚为什么会发生这种情况。
答案 0 :(得分:0)
如果用户输入的内容会在1-2秒后进行格式化时设置超时,那该怎么办?