這應該是一個相當直接的問題,但我很難過。Angular:呼叫服務一旦多個控制器
我有一個服務,使http調用,然後做廣泛的結果後處理。我希望將處理後的結果分配給$ scope.variable並在幾個不同的視圖中使用。事情是我爲每個視圖都有單獨的控制器,但我不希望每個控制器都調用該服務以從資源獲取相同的數據併爲每個控制器進行一次後處理。
超級簡化我有這樣的:
myModule.factory ('Data', function ($http, $q) {
getData: $http.get...
processData: this.getData().success(function(data){
... do a ton of cpu intensive processing ...
return processed_data
ctrl1 = function(Data,$scope) {
$scope.data = Data.processData()
}
ctrl2 = function(Data,$scope) {
$scope.data = Data.processData()
etc...
}
很顯然,我想設置$ scope.data = Data.processData()只有一次,並讓它在所有的控制器填充。就目前而言,每個控制器都會獨立調用服務,這會產生不必要的流量和CPU。
我敢肯定,有一些簡單的,但我不明白。有什麼方法可以創建一個「超級」範圍,我可以定義所有控制器範圍通用的變量?
謝謝,
您可以通過創建服務在控制器之間共享數據[如此處所述](http://stackoverflow.com/questions/12008908/pass-variables-between-controllers) – Gloopy