Подсчитать количество элементов в объекте $ resource.query ()

0

Я пытаюсь подсчитать количество элементов, возвращаемых из $resouce.query(), чтобы я мог увеличить его и использовать в качестве идентификатора для следующего объекта, который будет сохранен.

Ниже приведена служба связи с сервером:

eventsApp.factory('EventData', function($resource) {
    var resource = $resource('/data/event/:id', {id: '@id'});
    return {
        getEvent: function(eventId) {
            return resource.get({id: eventId});
        },

        saveEvent: function(event) {
            var count = 0;
            resource.query(function(data) {
                count = data.length; // Accessible here!
            });
            event.id = count; // Not accessible here!
            return resource.save(event);

        },

        getAllEvents: function() {
            var count = 0;
            var lol = resource.query(function(data) {
                count = data.length;
            });
            console.log(count);
            return resource.query();
        }

    }
});

Однако, как упоминалось в комментариях, я не могу получить доступ к свойству length. Любые решения?

Теги:

1 ответ

0

Глядя на ваш код, что я получаю ваш resource.query выполняет функцию обратного вызова в асинхронном режиме из - за того, что ваш event.id = count; выполняется сначала, а затем выполняется обратный вызов. Если вы хотите получить доступ к data.length, вы можете использовать $q и создать отсрочку. И затем разрешите этот отложенный объект.

  • 0
    Не могли бы вы объяснить, как мне поступить в коде? Я новичок в AngularJS, и поэтому некоторые темы неясны.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню