我刚开始用AngularJS编写应用程序,我有几个关于跨路径数据持久性的问题。 Here a plunker一个简单的列表应用程序,它演示了我的问题。现在,每次加载控制器时都会发出HTTP请求。我只希望在加载应用程序时发送一个HTTP请求,然后能够在我的两个视图中使用该数据。
问题1:当我单击列表项时,如何使用ListCtrl中加载的数据而不是发出另一个请求来提取相同的数据(但是对于单个项目)?
问题2:如果我点击某个项目,然后点击后退按钮,我怎样才能使ListCtrl不重新发出获取所有列表项的请求?
答案 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仅在首次服务电话时请求数据,并将其用于其余服务电话。