如何保存用户表单值

时间:2019-06-17 19:08:35

标签: angular reactive-forms


我正在开发表单,并且正在使用Angular反应表单。
当用户重新加载页面时,我需要保存表单值,因为我有翻译服务,而此服务在用户更改语言时重新加载页面。

当用户更改语言时,如何保存用户表单值?

2 个答案:

答案 0 :(得分:1)

您可以对表单值进行字符串化并将其保存到本地存储中,然后在应用重新加载时将其重新放入表单中。

// Set in local storage
localStorage.setItem(itemName, JSON.stringify(formValues)); 

// Retrieve data from localstorage 
formVals= JSON.parse(localStorage.getItem(itemName));

答案 1 :(得分:1)

我不确定您要使用哪个库进行翻译,以及为什么它会那样工作,但是无论如何我都会尝试回答您的问题。

如果您希望在更改语言时存储表单值,则可以直接加入语言更改事件。

例如,使用 ngx-translate ,您可以简单地挂接到onLangChange事件。

onLangChange.subscribe((event: LangChangeEvent) => {
  const formValue = this.form.value
  // Persist form value into the localStorage
});

另一种选择是,只要对表单进行更改,就可以将表单值持久保存到localStorage中。赞(建议使用 DerrickF ) 这样,您将始终拥有最新的表单值:

  this.form.valueChanges.subscribe(formValue=> // Persist to local storage)

,您可以简单地从localStorage加载它们并使用来设置表单值

this.form.setValue(**yourPersistedFormValue**)
相关问题