【发布时间】:2013-11-22 07:27:44
【问题描述】:
我正在尝试编写一个指令来自动格式化<input> 中的数字,但模型未格式化。
让它工作很好,加载时输入中的值在控制器中显示为 1,000,000 和 1000000,但是当只输入 ngModel.$parsers 函数时会触发。
ngModel.$formatters 触发的唯一时间是指令被加载且值为 0 时。
我怎样才能让它在按键上工作(我已经尝试绑定到 keypress/keyup 但它不起作用)。
这是我的代码:
angular.module('myApp.directives', []).directive('filterInput', ['$filter', function($filter) {
return {
restrict: 'A',
require: 'ngModel',
link: function(scope, element, attr, ngModel) {
ngModel.$parsers.push(function fromUser(text) {
return parseInt(text.replace(",", ""));
});
ngModel.$formatters.push(function toUser(text) {
console.log($filter('number')(text));
return ($filter('number')(text || ''));
});
}
};
}]);
【问题讨论】:
标签: javascript jquery angularjs input