如何在Angular中设置arrayform?

时间:2019-05-23 09:02:01

标签: angular ionic-framework ionic4

我正在为新应用程序使用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中的数组来设置项目数组。

2 个答案:

答案 0 :(得分:0)

如果setValuepatchValue类的实例,则

resetthis.urenFormFormArray是您应寻找的功能。 另外,您可以尝试将getRawValue的字符串化结果存储在本地存储中,然后使用setValuereset将其加载到表单中。

查看文档:{​​{3}}

答案 1 :(得分:0)

尝试

  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())
    );
  }