2014-04-05 28 views
0

我刚开始写与AngularJS应用程序的数据和我对整个路线数据持久几个问题。 Here a plunker一个简单的列表应用程序,演示了我的问题。现在,每次加载控制器时都会发出HTTP请求。我只希望在加载应用程序时发送一个HTTP请求,然后能够在我的两个视图中使用这些数据。停止从重装在AngularJS

问题1:当我点击列表项,我怎么可以使用在加载的ListCtrl,而不是发出新的请求拉相同的数据(但对于单个项目)的数据?

问题2:如果我点击一个项目,然后单击后退按钮,我怎样才能让这个的ListCtrl不重的问题得到所有的列表项的请求?

回答

1

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

而且,这家伙就用它来你正在寻找一个不错的职位,所以我不会在这里重新发明轮子。

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

+0

虽然此链接可以回答这个问题,最好是在这里有答案的主要部件,并提供链接以供参考。如果链接页面更改,则仅链接答案可能会失效。 –

+0

@ e-sushi我通常会根据需要添加代码,但我认为通过提供他正在寻找的工厂名称,链接到文档,然后另一个链接作为参考包括所有必需品。 – kevindeleon

+0

我同意@kevindeleon。另外,他确实包含了必要的部分。尽管如此,第一个链接看起来很糟糕。 – trysis

0

答1:你可以节省$rootScope所以所有$scope访问的数据的数据。

回答2:您可以cache您的ajax,因此AngularJS只会在第一次服务呼叫时请求数据,并将其用于其余服务呼叫。

+0

'答案1'应该用'services'完成,而不是'$ rootScope'。 – trysis