Прямо сейчас я хочу иметь возможность установить некоторые данные для службы и получить данные на втором контроллере. Я увидел в своем отладчике, что код работает неправильно, потому что моя логика не асинхронна.
myApp.factory('Data', function($http) {
var storage;
this.callMe = function() {
return $http.get("https://api.github.com");
};
this.getStorage = function() {
return storage;
};
this.setStorage = function(v) {
storage = v;
};
return this;
});
function FirstCtrl($scope, Data, $q) {
Data.callMe().then(function(response) {
$scope.data = response.data;
});
Data.setStorage($scope.data);
}
function SecondCtrl($scope, Data) {
var data = Data.getStorage();
}
У меня есть plnkr: http://plnkr.co/edit/0FicRx9FVJfeWFZhO4Ya?p=streamer
Я попытался использовать $q.defer, но не смог добиться желаемого эффекта.