加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

AngularJS:将数据从服务返回到控制器

发布时间:2020-12-17 07:55:08 所属栏目:安全 来源:网络整理
导读:我正在尝试创建一个服务来获取json并将其传递给我homeCtrl我可以获取数据但是当它传递给我的homeCtrl它总是返回undefined.我卡住了. 我的服务: var myService = angular.module("xo").factory("myService",['$http',function($http){ return{ getResponders
我正在尝试创建一个服务来获取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.

var myService = angular.module("xo").factory("myService",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;
            });
        }
    };
}]);

同样在你的控制器内你应该调用工厂函数并使用.then函数在getResponders服务函数解析$http.get调用并将数据分配给$scope.gotData时调用它.

$scope.goData = function(){
     myService.getResponders.then(function(data){
          $scope.gotData = data;
     });

 };

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读