现在,我希望能够为服务设置一些数据,并能够在第二个控制器上获取数据。我在调试器上看到,代码没有正常工作,因为我的逻辑不是异步的。
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,但我无法获得我想要的效果。