AngularJS计算ngResource返回的文件夹中的对象

时间:2014-11-07 22:45:43

标签: angularjs ngresource

我正在学习AngularJS,我想到的可能是一个简单的问题。

我使用$ Resource从文件夹中获取json对象,并且需要对文件夹中的对象进行计数。我已经能够在save函数中的回调语句中获取我正在寻找的值,但是我做错了,我无法将其返回到我需要使用它的位置。我使用计数作为一种方法来自动增加文件夹中创建的文件的ID。

我在代码中有关于我可以访问值的位置的注释,以及我需要访问它的位置,它都在Save Function中。

非常感谢任何帮助。

我的服务:

eventsApp.factory('eventData', function($resource) {
var resource = $resource('/data/event/:id', {id: '@id'}, {"getAll": {method: "GET", isArray:true, params: {something: "foo"}}});
return {
    getEvent: function(eventId) {
        return resource.get({id:eventId});
    },
    save: function(event) {

        resource.query(function(data){ 
                       console.log("Event ID In: " + data.length); //value is accessible here
                      });

        event.id = ; //need to access value here
        return resource.save(event);


    },
    getAllEvents: function() {

        return resource.query();
    }
};

});

由于

1 个答案:

答案 0 :(得分:3)

你可以这样做,而不需要围绕$ resource

的包装器
eventsApp.factory('eventData', function($resource) {
    return $resource('/data/event/:id');
});

然后,在您使用工厂的地方(例如控制器代码),您可以为此行为定义一个函数

function saveEvent(event) {
    eventData.query(function(data){ 
        console.log("Event ID In: " + data.length); //value is accessible here
        event.id = data.length;
        eventData.save(event);
    });
}

但我认为你应该重新考虑你的数据库设计。始终将保存与查询连接似乎不是一个有效的解决方案。