Я использую Угловой HTTP-ресурс для получения некоторых данных из API. Метод API на самом деле является PUT, но возвращает массив данных. (Заметьте, это не мой API)AngularJS HTTP Resource - Respos Function Undefined
Он отлично выполняет HTTP-вызов, и я вижу в Сети инструменты для разработчиков Google, мой ответ прав. Тем не менее, я продолжаю получать «TypeError: undefined не является функцией» при попытке работать с данными ответа.
Вот некоторые из различных методов, которые я пробовал, и каждый из них дает тот же TypeError:
HTTP Ресурс
.factory('Sports', ['$resource', 'SPORTS_CONFIG',
function($resource, SPORTS_CONFIG) {
return $resource(SPORTS_CONFIG.URL, {}, {
get: {
method: 'PUT',
isArray: true
}
});
}
])
Угловая JS Попытки
// Construct Sports Body
var s = new Sports($scope.sport);
// Attempt 1
s.$get({}, function(data){
});
// Attempt 2
s.$get({}).then(function(data){
});
// Attempt 3
s.$get({}).$promise.then(data){
});
EDIT
После просмотра моего кода ошибки, похоже, что ошибка возникает в 'isArray' в моем HTTP-ресурсе. Когда я устанавливаю isArray в false, это ошибки, потому что он ожидает объект, но получает массив. Когда я сохраняю это правду, это ошибки и говорит TypeError: undefined не является функцией. Когда я нажимаю на строку javascript, это isArray.
ВТОРОЙ EDIT
Я получил его на работу, используя следующий код:
$scope.teams = Sports.get($scope.sport);
Однако $ scope.teams = [0, $ обещание, $ решены]. Как я могу получить только [0] вместо $ обещания и $ решены?
Вы пробовали S $ получить() успех (функция (данные, статус. заголовки, config) { }); ? – satchcoder
Я добавил, что такое s, ресурс $ http и обновление местоположения ошибки. Не могли бы вы увидеть изменения. –
Можете ли вы сказать нам, какой ответ «PUT» вы получаете? –