当我移动到AngularJS上的其他路由时,我如何保持我的输入数据?

How can I keep my input data when moving to other routes on AngularJS?

本文关键字:何保持 我的 输入 数据 路由 移动 AngularJS 其他      更新时间:2023-09-26

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

因此,它可能有一个普通的<form>和一个提交按钮,但在它里面可能有一个链接到另一个,另一个,等等。

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

例如,他/她可以开始填充FORM A,然后发现里面有FORM B,移动到另一条路线,填充并提交FORM B,当返回和FORM A时,它将是空的。

我想预先保存用户填写的所有输入数据。我只是想要某种形式的缓存用户可能提供的任何输入,所以用户可以自由地从一个表单移动到另一个表单,而不需要提交。

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

服务可以像这样:

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

然后绑定到视图层中正确的formNData字段。如果表单的数量也是动态的,你可以在你的Angular应用中添加一个配置块,指出你需要多少form数据对象,并在service函数中使用它。