0

我對angularjs相當陌生,所以請耐心等待。在angularjs中使用restangular在兩個控制器之間共享數據

我有兩個控制器,其中一個有一個Restangular調用來加載某個json對象。如何在另一個控制器中訪問這個相同的json對象而不進行另一個Restangular調用?

我已經試過製作一個共享對象的factory,但是這遠遠沒有奏效。

app.factory('Data', function() { 
    return [] 
} 

app.controller("FirstCtrl", function ($scope, AudioRestangular, Data) { 
    $scope.audios_full = Data 
    // load data into $scope.audios_full using restangular 
} 

app.controller("SecondCtrl", function ($scope, AudioRestangular, Data) { 
    /* 
    * $scope.second_ctrl_audios = ? 
    * get data from FirstCtrl's audios_full 
    * and store it in this $scope.second_ctrl_audios 
    */ 
} 
+0

可能重複[可在一個控制器調用另一個AngularJS?](HTTP:/ /stackoverflow.com/questions/9293423/can-one-controller-call-another-in-angularjs) – Stewie

+0

顯示用於填充數據的代碼? – Chandermani

回答

1

你可以下去了定製服務/工廠的路線,有效地創建自己的緩存層按照你的建議,或者您也可以在Restangular啓用緩存。從https://github.com/mgonto/restangular#can-i-cache-requests

RestangularProvider.setDefaultHttpFields({cache: true}); 

你或許可以把這個應用程序的「運行」通話,就像這樣:

app.run(function(RestangularProvider) { 
    RestangularProvider.setDefaultHttpFields({cache: true}); 
}); 
+0

不運行()函數,但我認爲應用程序的config()函數。 –

相關問題