停止在AngularJS中重新加载数据

时间:2014-04-05 17:49:13

标签: javascript angularjs

我刚开始用AngularJS编写应用程序,我有几个关于跨路径数据持久性的问题。 Here a plunker一个简单的列表应用程序,它演示了我的问题。现在,每次加载控制器时都会发出HTTP请求。我只希望在加载应用程序时发送一个HTTP请求,然后能够在我的两个视图中使用该数据。

问题1:当我单击列表项时,如何使用ListCtrl中加载的数据而不是发出另一个请求来提取相同的数据(但是对于单个项目)?

问题2:如果我点击某个项目,然后点击后退按钮,我怎样才能使ListCtrl不重新发出获取所有列表项的请求?

2 个答案:

答案 0 :(得分:1)

您可能正在寻找$cacheFactory。您可以使用它来构造缓存对象来存储数据。

另外,这个家伙有一个非常好的帖子用于你正在寻找的东西,所以我不会在这里重新发明轮子。

http://www.phase2technology.com/blog/caching-json-arrays-using-cachefactory-in-angularjs-1-2-x/

答案 1 :(得分:0)

答案1:您可以将数据保存在$rootScope上,以便所有$scope都可以访问数据。

答案2:您可以cache您的ajax,以便AngularJS仅在首次服务电话时请求数据,并将其用于其余服务电话。