我正在开发表单,并且正在使用Angular反应表单。
当用户重新加载页面时,我需要保存表单值,因为我有翻译服务,而此服务在用户更改语言时重新加载页面。
当用户更改语言时,如何保存用户表单值?
答案 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**)