@Vlad171

Как получить данные из объекта $resource?

Есть API с которым работаю через $resource. Через var model=Mymodel.query() получаю объект вида [$promise: Promise, $resolved: false], в котором в $promise сидит массив с данными. Да понятно, асинхронность, получение данных через promise и т.д. На уровне теории понятно. Но есть задача - получить из Mymodel.query данные по типу model.data (к примеру) и сохранить в переменную. Попытки типа:
model.$promise.then(function(response) {
$scope.data=response.data;
})
выдают undefined. Есть знатоки? Объясните любителю в чем правда......
  • Вопрос задан
  • 247 просмотров
Решения вопроса 1
dunmaksim
@dunmaksim
Технический писатель
Правильно писать так:
(function(A) {
    "use strict";
    A.module('App').controller('Ctrl', ['$resource', '$scope', functino($resource, $scope) {
        var r = $resource('/api/items/:id/', {
            id: '@id'
        }, {
            update: {
                method: 'PUT' //Необязательная фича для Django REST Framework
            }
        });
        $scope.loading = true;
        $scope.items = [];

        r.query({
            //А можно передать параметры, скажем, limit и offset
        }, function(response) {
            $scope.items = response;
            $scope.loading = false;
        }, function(response) {
            $scope.loadign = false;
            $scope.errors = response.data; // Так DRF отдаёт ошибки
        });
    }]);
}(this.angular));
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
miraage
@miraage
Старый прогер
ngResource - не очень.
Restangular - огонь.
Ответ написан
А если посмотреть в отладчике, что находится в 'response'?
Ответ написан
@Vlad171 Автор вопроса
Странно. Вроде Angular сейчас моден, а вот реально знатоков по нему мало...
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы