自定义服务返回未定义

Custom Service returning undefined

本文关键字:未定义 返回 服务 自定义      更新时间:2023-09-26

我正在创建一个自定义服务,它在那里工作,在函数服务中向我返回数据,问题是当我在控制器中调用它时,它向我返回"未定义"。

服务:

var toDoListServices = angular.module('toDoListServices', []);
    toDoListServices.factory('DataTasksService', function($http){
        return {
            getTasks: function(){
                $http.get('js/data.json').success(function(data){
                    return data;
                })
            }
        }
    });

控制器:

var toDoListController = angular.module('toDoListController', []);
toDoListController.controller('ListController', ['$scope', 'DataTasksService', function($scope, DataTasksService){
        $scope.tasks = DataTasksService.getTasks();
}]);

App.js:

var myApp = angular.module('myApp', [
    'ngRoute',
    'toDoListController',
    'toDoListServices'
]);

getTasks不返回任何内容。success内部的返回没有任何作用。

您需要返回$http承诺。

尝试

toDoListServices.factory('DataTasksService', function($http){
    return {
        getTasks: function(){
            // return the promise
            return $http.get('js/data.json');               
        }
    }
});

控制器内:

DataTasksService.getTasks().then(function(response){
    $scope.tasks = response.data;
});