Angular 2:重置表单忽略初始值

时间:2016-09-20 09:12:50

标签: forms angular

我有一个Angular 2应用程序,我为某些输入设置默认值,如下所示:

this._stdSearchForm = this._formBuilder.group({
    count: [{value: 50, disabled: false}, Validators.compose([Validators.required, Validators.minLength(1), Validators.maxLength(3), Validators.pattern("^[0-9]+$")])]
});

我已经添加了一个“重置”功能,如下所示:

(click)="resetStdSearchForm()"

而且只是运行:

this._stdSearchForm.reset();

重置表单,但忽略FormBuilder组中定义的初始值。

这种行为是否打算?

重置表单后,我可以以编程方式设置“count”的值吗?我试过这样做:

this._stdSearchForm.value.count = 50;

但这没有改变。

1 个答案:

答案 0 :(得分:12)

您可以尝试以下操作:

this._stdSearchForm.setValue({ count: 50});

或者你也可以这样做:

this._stdSearchForm.reset({ count: 50});

reset方法会重置 FormGroup 。这意味着默认情况下:

  • 该组及所有后代都标记为原始
  • 该组及所有后代未标记
  • 所有后代的值将为null或null maps