动态添加的input [type ='number'] FormControl首次未设置值和验证

时间:2018-09-06 07:45:52

标签: angular angular-forms angular-validation

我正在使用Angular 6。

我要在表单上添加并显示动态FormControl'precisionLimit',以切换标志,并在标志变为false时删除它及其验证。

我在这里面临的问题是:

我的输入类型是'数字',并且我要添加新的FormControl,例如:

this.surveyModalForm.addControl('precisionLimit', new FormControl(0, Validators.compose([NumberValidator.validate, Validators.min(0), Validators.max(5)])));

这里的问题是,当我第一次切换标志时,我得到了一个空的输入框(其中应预设0值)。同样输入一个数字,验证也不起作用。我也使用过updateValueAndValidity()方法,但是它也无法正常工作。

令人惊讶的是,当我第二次切换标志时,设置了值并且验证也正常工作。

但是它首先适用于以下代码:

this.surveyModalForm.addControl('precisionLimit', new FormControl());
this.surveyModalForm.controls['precisionLimit'].setValue(0);
this.surveyModalForm.controls['precisionLimit'].setValidators([NumberValidator.validate, Validators.min(0), Validators.max(5)]);

所以,我没有发现第一种方法出了什么问题。任何帮助将不胜感激。

P.S .:我的表单位于引导程序模式内。

0 个答案:

没有答案