我正在努力学习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;
};
}]);
感谢任何帮助...
答案 0 :(得分:9)
return语句中的代码中存在语法错误。您应该使用逗号分隔对象的属性。它应该是:
return {
topics: _topics,
getTopics: _getTopics
};
根据评论主题,最终解决方案似乎已删除return
和{
之间的换行符。有关详细说明,请参阅this answer。