【问题标题】:Angular 2: Resetting form ignores initial valueAngular 2:重置表单忽略初始值
【发布时间】:2016-09-20 17:41:36
【问题描述】:

我有一个 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;

但这并没有改变。

【问题讨论】:

    标签: forms angular


    【解决方案1】:

    您可以尝试以下方法:

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

    或者你也可以这样做:

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

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

    • 该组和所有后代都被标记为原始
    • 组和所有后代都标记为未触及
    • 所有后代的值将为空或空映射

    【讨论】:

      猜你喜欢
      • 2016-12-23
      • 1970-01-01
      • 2013-04-06
      • 1970-01-01
      • 2017-04-14
      • 1970-01-01
      • 1970-01-01
      • 2021-09-09
      • 1970-01-01
      相关资源
      最近更新 更多