【问题标题】:Reset form control with dynamic form names使用动态表单名称重置表单控件
【发布时间】:2019-05-13 18:48:31
【问题描述】:

我正在尝试在动态创建的表单中重置选择表单控件。表单控件的名称将是动态的并且每次都不同。如何将控件名称传递给重置方法,以便在重置时为控件提供默认值,而不是将其设置为 null。下面的代码似乎没有在 reset 方法中获取 controlName。

resetForm() {
    for (let i = 0; i < this.storedFieldNames.length; i++) {
      console.log(this.form);
      const controlName = this.storedFieldNames[i];
      const controlVal = this.storedFieldVals[i];
      this.form.reset({
        controlName: controlVal
      });
    }
  }

我希望表单重置并且所有选择值都具有原始默认值的默认选择值。目前它会重置表单,但值为空。

【问题讨论】:

    标签: javascript angular


    【解决方案1】:

    保存您的原始表单值,并在调用重置时,只需传递该原始值。

    constructor(fb: FormBuilder) {
      this.someForm = fb.group({ ... });
      this.initialValue = this.someForm.value;
    }
    
    reset() {
      this.someForm.reset(this.initialValue);
    }
    

    看起来更干净,更容易理解,你不觉得吗?

    【讨论】:

    • 谢谢,工作完美,干净得多,我同意 :)
    猜你喜欢
    • 2019-04-01
    • 1970-01-01
    • 2011-01-24
    • 1970-01-01
    • 1970-01-01
    • 2018-04-01
    • 2015-09-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多