我正在尝试编写一个指令,让<input>
元素使用,
代替.
作为分隔符来接受浮点数。
我通过向.
添加新的解析器来解析用户输入the example from the documentation以接受,
和controller.$parsers
作为分隔符。
但是,我现在希望10.5
显示为10,5
(如果我使用JS在模型中设置值,则目前不是这种情况)。
所以我可以在指令中添加&#34;格式化程序&#34;功能?(就像我可以添加&#34;解析器&#34;功能)
这是指令:
app.directive('inputFloat', function () {
var FLOAT_REGEXP = /^\-?\d+((\.|\,)\d+)?$/;
return {
require: 'ngModel',
link: function (scope, element, attrs, controller) {
controller.$parsers.unshift(function (viewValue) {
if (FLOAT_REGEXP.test(viewValue)) {
controller.$setValidity('float', true);
if (typeof viewValue === "number") {
return viewValue;
} else {
return parseFloat(viewValue.replace(',', '.'));
}
} else {
controller.$setValidity('float', false);
return undefined;
}
});
}
};
});
以下是模板中的使用方法:
<input input-float type="text" ng-model="input.value.digitalValue">