2015-01-13 2 views
-1

Вот мой код. Я получаю сообщение об ошибке: TypeError: undefined is not a function: Я думаю, что проблема в том, что я не понимаю обещаний, но если кто-то может просветить меня, я бы очень признателен.Завод Angularjs http get дает «undefined is not 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

Я не думаю, что $resource имеет .then() метод как $http вместо этого попытаться передать функцию обратного вызова в качестве второго аргумента

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

Или вызовите его $promise

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

Спасибо большое! Я выбрал первый вариант. – Lazloman

Смежные вопросы