我正在为新应用程序使用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中的数组来设置项目数组。
答案 0 :(得分:0)
setValue
是patchValue
类的实例,则 reset
,this.urenForm
或FormArray
是您应寻找的功能。
另外,您可以尝试将getRawValue
的字符串化结果存储在本地存储中,然后使用setValue
或reset
将其加载到表单中。
查看文档:{{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())
);
}