计算$ resource.query()对象中的元素数

时间:2016-06-02 03:40:39

标签: javascript angularjs

我试图计算从$resouce.query()对象返回的元素数量,这样我就可以增加它并将其用作下一个要保存的对象的ID。

以下是与服务器通信的服务:

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 :(得分:0)

通过查看代码我得到的是resource.query异步执行回调函数,因为首先执行event.id = count;然后执行回调。如果要访问data.length,则可以使用$q并创建延迟。然后解决该延迟对象。