$ injector:undef提供者'dataService'必须从$ get factory方法返回一个值

use*_*007 2 angularjs

我正在努力学习AngularJS.在我跟随导师的时候,我写了与他相同的代码.但是我收到了一个[$injector:undef] Provider 'dataService' must return a value from $get factory method错误.当我在网络中搜索此错误时,会告诉我必须返回一个函数或一个对象.我想我在做.我的工厂声明如下:

module.factory("dataService", ['$http', '$q', function ($http, $q) {
    var _topics = [];
    var _getTopics = function () {
        var deferred = $q.defer();
        $http.get("/api/v1/topics?includeReplies=true")
            .then(function (result) {
                //success
                angular.copy(result.data, _topics);
                deferred.resolve();
            },
            function () {
                //error         
                deferred.reject();
            });
        return deferred.promise;
    };
    return
    {
        topics: _topics;
        getTopics: _getTopics;
    };
}]);
Run Code Online (Sandbox Code Playgroud)

任何帮助表示赞赏......

Way*_*ery 9

您在return语句中的代码中存在语法错误.您应该使用逗号分隔对象的属性.它应该是:

return {
    topics: _topics,
    getTopics: _getTopics
};
Run Code Online (Sandbox Code Playgroud)

根据评论主题,最终的解决方案似乎是删除了return和之间的换行符{.有关更多说明,请参阅此答案.

  • 忽略我的编辑.尝试将起始支架移动到返回线上. (3认同)