ice*_*erg 8 angularjs angularjs-service angularjs-factory angularjs-http angular-promise
我正在尝试创建一个服务来获取json并将其传递给我homeCtrl我可以获取数据但是当它传递给我的homeCtrl它总是返回undefined.我卡住了.
我的服务:
var myService = angular.module("xo").factory("myService", ['$http', function($http){
return{
getResponders: (function(response){
$http.get('myUrl').then(function(response){
console.log("coming from servicejs", response.data);
});
})()
};
return myService;
}
]);
Run Code Online (Sandbox Code Playgroud)
我的家庭控制器:
var homeCtrl = angular.module("xo").controller("homeCtrl", ["$rootScope", "$scope", "$http", "myService",
function ($rootScope, $scope, $http, myService) {
$scope.goData = function(){
$scope.gotData = myService.getResponders;
};
console.log("my service is running", $scope.goData, myService);
}]);
Run Code Online (Sandbox Code Playgroud)
Pan*_*kar 20
你应该从getResponders函数返回promise ,当它被解析时它应该response.data从该函数返回.
厂
var myService = angular.module("xo").factory("myService", ['$http', function($http) {
return {
getResponders: function() {
return $http.get('myUrl')
.then(function(response) {
console.log("coming from servicejs", response.data);
//return data when promise resolved
//that would help you to continue promise chain.
return response.data;
});
}
};
}]);
Run Code Online (Sandbox Code Playgroud)
同样在控制器内部,您应该调用工厂函数并使用.then函数在getResponders服务函数解析$http.get调用并分配data到时调用它$scope.gotData
码
$scope.goData = function(){
myService.getResponders.then(function(data){
$scope.gotData = data;
});
};
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
43167 次 |
| 最近记录: |