我尝试使用角度2创建一个活动表单,这样如果用户要刷新页面,或者甚至几天后再回来,那么他们正在处理的表单仍然会在填写时填写早点出来。我希望将此表单存储在本地存储中。
我尝试过像
这样的事情localStorage.setItem('form', JSON.stringify(this.myFormArray))
this.myFormArray
是一个表单数组。
然而,当我这样做时,我得到一个错误说...
RROR TypeError: Converting circular structure to JSON
at Object.stringify (<anonymous>)
有关如何解决此问题的任何想法?
亚历
答案 0 :(得分:0)
包含循环引用的结构无法使用JSON.stringify.use json-stringify-safe序列化
https://github.com/isaacs/json-stringify-safe
它不会抛出循环引用。
答案 1 :(得分:0)
我建议的基本方法是为每个表单创建一个唯一的id,然后订阅form.valueChanges
,可能需要去抖动以不在每次击键时写入,然后在订阅块中写入localStorage 。或者委托给一个服务(这样,你可以在以后更改持久性机制)。
然后在表单初始化时,使用类似form.setValue(valObj)
的内容,并将该服务的检索值用于该ID。