为什么函数没有返回值?

时间:2014-12-08 19:46:34

标签: javascript angularjs

我在角度服务中有这个代码:

factory.getList = function(){
      $http.get('/getClasses')
                    .success(function (response) {
                        console.log(response);

                        return(response);
                    })
                    .error(function() {
                        console.log('error in getList');
                    });
            };

当我运行它时,我可以在控制台中看到响应,但在控制器中我有:

$scope.classesList = Svc.getList();

并且此classesList始终未定义。为什么呢?

1 个答案:

答案 0 :(得分:0)

它是一个异步回调函数,你需要做一些事情

首先将callb函数传递给服务

factory.getList = function(callb){
      $http.get('/getClasses')
                    .success(function (response) {
                        console.log(response);

                        callb(response);
                    })
                    .error(function() {
                        console.log('error in getList');
                    });
            };

然后在控制器中调用它

 Svc.getList(function(data){
 $scope.classesList=data;
 });