如何将阵列设置为Angular



我正在为我的新应用使用离子。我为用户提供了在本地(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的数组进行设置的项目阵列。

尝试使用此

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

setValuepatchValuereset是您应该寻找的功能,如果this.urenFormFormArray类的实例。另外,您可以尝试在LocalStorage中存储getRawValue的弦乐结果,然后使用setValuereset

将其加载到表单中。

参见文档:https://angular.io/api/forms/formarray

最新更新