Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在AngularJS上移动到其他路线时,如何保留输入数据?_Javascript_Angularjs_Html_Forms - Fatal编程技术网

Javascript 在AngularJS上移动到其他路线时,如何保留输入数据?

Javascript 在AngularJS上移动到其他路线时,如何保留输入数据?,javascript,angularjs,html,forms,Javascript,Angularjs,Html,Forms,我有一个动态创建的AngularJS应用程序 因此,它可能有一个带有提交按钮的普通,但在它的内部可能有一个指向另一个按钮的链接,以及另一个按钮的链接,依此类推 我已经完成了正确提交数据,无论用户在这个“表单网”中有多深,但问题是用户可能没有按照“正确的顺序”填写数据,用户可以自由地这样做 例如,他/她可以开始填写表格A,然后意识到里面有表格B,移动到另一条路线,填写并提交表格B,当回来时表格A将为空 因此,我想预先保存用户填写的所有输入数据。我只想对用户可能提供的任何输入进行某种缓存,这样用户就

我有一个动态创建的AngularJS应用程序

因此,它可能有一个带有提交按钮的普通
,但在它的内部可能有一个指向另一个按钮的链接,以及另一个按钮的链接,依此类推

我已经完成了正确提交数据,无论用户在这个“表单网”中有多深,但问题是用户可能没有按照“正确的顺序”填写数据,用户可以自由地这样做

例如,他/她可以开始填写
表格A
,然后意识到里面有
表格B
,移动到另一条路线,填写并提交
表格B
,当回来时
表格A
将为空

因此,我想预先保存用户填写的所有输入数据。我只想对用户可能提供的任何输入进行某种缓存,这样用户就可以自由地从一个表单移动到另一个表单,而无需提交。

您可以尝试使用,并将其作为依赖项注入表单使用的所有控制器中。然后将数据绑定到此服务,而不是绑定到控制器。由于该服务是单例服务,因此只会创建一次,并且不会随着用户在应用程序中的移动而重新创建。只要您不更改数据绑定值,并且用户保持在应用程序中,数据绑定值就会保持不变

该服务可能看起来像这样:

app.service('MyService', function () {
  return {
    form1Data: {},
    form2Data: {},
    form3Data: {}
  };
});

然后绑定到视图层中正确的
formnda
字段。如果表单的数量最终也是动态的,您可以在Angular应用程序中添加一个配置块,该配置块指示您需要多少
表单
数据对象,并在
服务
功能中使用该配置块。

如果您需要在整个会话中保持,可以使用服务/工厂或本地存储。实际上,我只是查看了一下LocalStorages,这看起来相当简单,我试试这个。