2015-01-13 5 views
-1

여기 내 코드입니다. 나는 다음과 같은 오류 메시지를 받는다 : TypeError: undefined is not a function : 나는이 문제가 약속에 대한 이해가 부족하다고 생각하지만 누군가 내게 계몽 할 수 있다면 크게 감사하겠다. 내가 $resource을 생각하지 않는다Angularjs factory http get은 'undefined is a function'이됩니다.

getProgramDetails: function (program) { 
    var _this = this; 
    this.getDetails(program).then(function() { 
     .... 
    }); 
}, 
getDetails: function (program) { 
    var _this = this; 
    var deferred = $q.defer(); 

    // Error occurs at this line 
    this.http.get({id: program.programID}).then(function(results) { 
     if (results && results.programID) { 
      _this.isNewProgram = false; 
      _this.selectedProgram = { 
       ... 
      }; 
     } else { 
      _this.isNewProgram = true; 
      _this.selectedProgram = { 
       ... 
      }; 
     } 
     deferred.resolve(); 
    }); 
    return deferred.promise; 
}, 

http: $resource(
$window.detailsEndpoint', 
{ id: '@id' }, 
{ //parameters default 
    update: { 
     method: 'PUT', 
     params: {} 
    }, 
    get: { 
     method: 'GET', 
     params: { 
      id: '@id' 
     } 
    }, 
    post: { 
     method: 'POST' 
    } 
}) 
+0

당신이 우리에게 줄 수 있다면 도움이 될만한 좀 더 많은 정보! – pje

+0

'$ window.detailsEndpoint ''는''' – Cerbrus

+0

이 부족한 것 같습니다. 더 많은 정보가 필요하십니까? 나는 이미 올바른 답을주고, 실행하고 받아 들였다. '오타'였어. 정답을 제시 한 사람은 그것을 분명히 이해했습니다. – Lazloman

답변

1

$http 같은 .then() 방법 대신 두 번째 인수로

this.http.get({id: program.programID}, function(results){}); 

을 콜백을 통과 시도하거나 전화가 자사의 $promise

this.http.get({id: program.programID}).$promise.then(function(results){}); 
+0

감사합니다. 나는 첫 번째 옵션을 선택했다. – Lazloman