我正在尝试创建一个指令,将numeric
值转换为integer
。
例如,我有输入类型编号,当用户键入1.1时,该值应该转换回1.
app.directive('toInteger', function() {
return {
require: 'ngModel',
link: function(scope, elem, attrs, ngModel) {
ngModel.$parsers.push(function(value) {
var value = parseInt(value);
return value;
});
}
};
});
我哪里错了?
问题:
如果我输入1.1
而不是指令将其转换回1
。但是,它会继续在视图上显示1.1
(在输入字段内)。
我正在使用我的html指令,如下所示
<input type="number" name="input" class="form-control" min="0" max="1000" data-ng-model="input" to-integer>
答案 0 :(得分:2)
我已经更改了指令,根据您的要求,它的工作正常。请使用此
app.directive('toInteger', function ($parse) {
return {
require: 'ngModel',
link: function (scope, elem, attrs, ngModel) {
ngModel.$parsers.push(function (value) {
var value = parseInt(value);
$parse(attrs.ngModel).assign(scope, value);
scope.$apply();
});
}
};});