2014-12-27 1 views
2

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

@ wayne-ellery 질문을 수정하면 누구에게도 도움이되지 않습니다. –

+1

@ PeterJ.Hart 죄송합니다. 나는 그것을 실수로했다. 원래 질문으로 되돌 렸습니다. –

답변

9

는 return 문에 당신의 코드에 구문 오류가 있습니다. 쉼표를 사용하여 개체의 속성을 구분해야합니다. 그것은해야한다 : 주석 스레드를 바탕으로

return { 
    topics: _topics, 
    getTopics: _getTopics 
}; 

, 궁극적 인 해결책은 return{ 사이의 줄 바꿈을 제거하는 것으로 나타납니다. 자세한 설명은 this answer을 참조하십시오.

+0

나는 이것을 전에 시도했다. 그것은 나에게 아래의 오류를 준다. '심각한 오류가 http : // localhost : 50272/js/home-index.js의 35 행 18 열에서 발견되었습니다. SCRIPT1004 : 예상 ';' http : // localhost : 50272/Scripts/angular.js의 줄 4117, 열 9에서 처리되지 않은 예외 0x800a139e - JavaScript 런타임 오류 : [$ injector : modulerr] 오류로 인해 모듈 homeIndex를 인스턴스화하지 못했습니다. 오류 : [$ injector : nomod] 모듈 'homeIndex'를 사용할 수 없습니다! ' – user007

+0

줄에 무엇이 있는지 게시하십시오. 당신은 그것을 클릭 할 수 있어야합니다. –

+0

정확히 ","코드에 있습니다. return { 주제 : _topics, getTopics : _getTopics }, ' – user007

관련 문제