我有一个表单模型:
form = new FormGroup({currency: new FormControl('')})
在控件中输入值启用了屏蔽字符:
$ 123, 456
现在如何让form.value
返回{ currency: 123456 }
?
我试过了this.form.controls['currency'].setValue(123456)
但是没有用。
答案 0 :(得分:-1)
你可以使用指令ngModel。$ parsers.push和ngModel。$ formatters.push
'use strict'
// Directive to show the browser sepcific decimal separator for Numeric
controls.
angularPracticeApp.directive('apNumberInput', function () {
return {
restrict: 'A',
require: '^ngModel',
scope: {},
link: function (scope, element, attr, ngModel) {
// Runs when the value change from UI.
ngModel.$parsers.push(function (value) {
if (value && typeof (value) === "string")
return value.replace(',', '.');
else
return value;
});
// Runs when the value change from code.
ngModel.$formatters.push(function (value) {
if (value && typeof (value) === "string")
return value.replace('.', ',');
else
return value;
});
}
}
});