我试图创建一个服务来获取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; } ]);
我的家庭控制器:
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); }]);
您应该从getResponders函数返回promise ,当它被解析后,它应该response.data从该函数返回。
getResponders
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; }); } }; }]);
同样在控制器内部,您应该调用factory函数,并.then在getRespondersservice函数解析该$http.get调用并将其分配data给$scope.gotData
.then
$http.get
data
$scope.gotData
码
$scope.goData = function(){ myService.getResponders.then(function(data){ $scope.gotData = data; }); };