2014-04-05 74 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