我试图计算从$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
媒体资源。任何解决方案?
答案 0 :(得分:0)
通过查看代码我得到的是resource.query
异步执行回调函数,因为首先执行event.id = count;
然后执行回调。如果要访问data.length,则可以使用$q
并创建延迟。然后解决该延迟对象。