我想通过指令更改onBlur事件输入的视图和模型数据。
我写了这个函数来更新视图和模型:
@HostListener('blur',['$event'])
blur(e:Event){
const target:HTMLInputElement = <HTMLInputElement>e.target;
const val = this.decimalPipe.transform(target.value.replace(/\,/g,''),'1.2-2');
this.ngModel.viewToModelUpdate(Number(val.replace(/\,/g,'')));
this.ngModel.valueAccessor.writeValue(val);
}
这很有效,但是当我想在输入this.ngModel.viewToModelUpdate
上定义表单控件时,对模型没有影响。
表单组代码:
form = new FormGroup({amountInput:new FormControl('',Validators.min(this.traderService.trader.sMPA)),
});
它看到忽略此函数并将模型设置为字符串。如何将模型更新为数字?
答案 0 :(得分:1)
尝试使用:
this.ngModel.control.patchValue(Number(val.replace(/\,/g,'')));
而不是
this.ngModel.viewToModelUpdate(Number(val.replace(/\,/g,'')));
对于使用Angular 5上的formControl输入的自定义指令存在同样的问题。