刷新页面时保存控制器状态



我正在尝试在我的表单中实现像gmail一样将消息保存为草稿功能。

用例:有一个带有特定字段的表单,其中包括一些文本框,一些图像上传等。我的问题是我怎么能保留这些值,如果这些已经由用户在页面刷新填写。请记住用户还没有提交页面。如果它已经提交,那么我可以从服务器检索值,但我怎么能在输入框中存储值现在,以防没有提交按钮被点击。

是否应该有一些api将定期保存值,或者可以有一些api,可以调用只有当用户要关闭页面或刷新它?

我不知道这一点,希望你能给我一些建议。

更新:

基于这些建议,我尝试探索一些教程/博客,这些教程/博客可以展示使用本地存储的正确设计和实现。我发现了以下好的链接:

http://yeoman.io/codelab/local-storage.htmlhttps://domantasjovaisas.wordpress.com/2014/09/05/angularjs-saving-global-variable-in-localstorage/

几个疑问:似乎我们可以在本地存储中存储JSON对象,但我如何为给定用户存储给定对象。

用例:用户可以创建多个消息。我只是想保留最后一条既没有保存也没有发送的消息。我如何设计它,使存储工作良好?对于给定的userId,我想在本地存储中保留一些数据。在本地存储中存储db Id是否安全?

请建议

如果您希望支持较旧的浏览器,我建议使用抽象于localStorage并遵从cookie的库。使用JSON。将其字符串化并传递给存储服务。如果一台机器上可能有多个用户,还可以在键后面附加用户名。无论如何,这将是一个很好的实践。

示例包括:

  • https://github.com/grevory/angular-local-storage
  • http://ngmodules.org/modules/ngStorage

你可以钩子到ng-change,手表,事件监听器,或者像别人建议的那样使用定时器。

更新:您可以在这里找到一个简单的实现,http://scionsoftware.com/Blog/saving-form-state-with-angular-js/

如果您希望像您暗示的那样只对一个字符串值执行此操作,只需删除JSON即可。解析和JSON。

最新更新