有关存储和保存角度数据的位置的建议

时间:2014-03-19 00:10:12

标签: angularjs

我正在构建一个包含3页的向导配置应用程序。每个页面都有相同的MasterController但不同的html模板。每个html模板都有一个不同的控制器,比如ControllerOne,ControllerTwo和ControllerThree。

我通过MasterController加载数据,我喜欢数据以及用户临时存储的任何更改,直到保存&完成最后一页的步骤。麻烦就是当用户浏览页面时,每次调用MasterController以及每次获取数据并覆盖用户的更改。

我考虑过将这些数据附加到服务或rootScope,但数据初始化仍然发生在MasterController中,因此在加载每个视图时仍然会覆盖数据。

关于如何创建此功能或重构我的应用以支持此功能的任何建议?

编辑:

明确服务问题。我不知道在哪里初始化它。如果我在控制器1,2或3中执行此操作,则每次视图更改时我的数据都会重新初始化,因此无法正常工作。我无法在app.run()中执行此操作,因为我需要访问MasterController以获取必要的ID来发出我的HTTP请求。我无法在MasterController中执行此操作,因为在每个页面切换时也会调用它。

理想情况下,我在视图中有一个视图,只有内部视图才会发生变化。但是,angular不支持嵌套视图,我试图找到一种方法,而不必使用angularUI。

1 个答案:

答案 0 :(得分:0)

为了解决每个页面上从服务器加载的数据更改和覆盖用户数据,我使用了“扩展”功能(如jQuery)来扩展服务器数据,并在每次加载时使用用户数据。页面更改会调用我的服务(存储临时数据)来保存数据,最后的“保存并完成”按钮会将服务中的数据推送到服务器。