更改视图时AngularJS保持状态?

时间:2016-02-04 17:01:26

标签: angularjs angularjs-scope angular-routing angularjs-model

有没有办法在更改视图和返回时保持$ scope?

当我加载某个视图时,会有一些重载(加载数据),但是如果我切换视图并回到这个视图,则数据会再次重新加载。有办法防止这种情况吗?

我不打算在视图之间共享数据,我只是希望在返回相同视图时具有旧状态。

1 个答案:

答案 0 :(得分:1)

有几种方法可以解决这个问题。

<强> $ rootScope
您可以将值存储在$ rootScope中,我不相信它在您使用内部路由模块时会发生变化,但我不建议这样做。

服务(我的即时推荐
您可以使用静态服务,可以不断地或在更改路径时存储数据。然后,您可以再次将数据加载到$ scope中。

<强>缓存
AngularJS有一个内置缓存,你可以使用。如果您只需要存储一些或者较少的时间,这是很好的。阅读CacheFactory here的文档。

WebSQL或localstorage
对于大量数据,您希望在会话之间存储,您可以在大多数浏览器中使用WebSQL数据库,或者将其作为文本存储在浏览器中的localStorage中。