我正在为我的新应用使用离子。我为用户提供了在本地(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())
);
}
setValue
, patchValue
或 reset
是您应该寻找的功能,如果this.urenForm
是FormArray
类的实例。另外,您可以尝试在LocalStorage中存储getRawValue
的弦乐结果,然后使用setValue
或reset
。
参见文档:https://angular.io/api/forms/formarray