如何在Angular中设置arrayform?

How to set arrayform in Angular?

我正在为我的新应用程序使用 Ionic。 我为用户提供了在本地存储表单 (localstorage) 的选项,但是当页面加载时,它必须加载本地表单。

我尝试将其直接设置为变量,但这不起作用

storeLocal() {
  window.localStorage.setItem('form' + this.date, JSON.stringify(this.projects)
}

loadLocal() {
  if (window.localStorage.getItem('form' + this.date)) {
    this.projects = JSON.parse(window.localStorage.getItem('form' + this.date))

    // OR...
    this.urenForm.setControl('projects', this._formBuilder.array(JSON.parse(window.localStorage.getItem('form' + this.date))));

  }
}

项目数组必须设置为我存储在localStorage中的数组。

setValuepatchValuereset 是您应该查找的函数,如果 this.urenFormFormArray class 的实例。 此外,您可以尝试将 getRawValue 的字符串化结果存储在本地存储中,然后使用 setValuereset.

将其加载到表单中

查看文档:https://angular.io/api/forms/FormArray

试试这个

  loadLocal() {
    const formNameStorage = "form" + this.date;
    if (window.localStorage.getItem(formNameStorage)) {
      const formData = JSON.parse(window.localStorage.getItem(formNameStorage));
      this.urenForm.patchValue(formData);
    }
  }

  saveToStorage() {
    const formNameStorage = "form" + this.date;
    localStorage.setItem(
      formNameStorage,
      JSON.stringify(this.urenForm.getRawValue())
    );
  }