ngResource的正确配置

我的应用程序中有3个对象,游戏,问题和答案。

这些类是这样配置的:

class Game{
   id;
   Question[] questions;
}

class Question{
    id;
    text;
    Answer[] answers;
}

class Answer{
    id;
    text;
}

我正在尝试正确配置一个ngResource来处理这个类的设置。 理想情况下,我想要实现的是这样的:

app.factory('gameRepository', function($resource){
    var gameResource = $resource('/api/Games/:id', { id: '@id' });    

    return {
        get: function(id){ return gameResource.get({id: id}); }
    };
});

app.controller('myController', function(gameRepository){
     var game = gameRepository.get(17);
     var questions = game.$getQuestions();
     var answers = questions[0].$getAnswers();
});

我知道这样做可以做到这一点:

var gameResource = $resource('/api/Games/:id/:action', { id: '@id', action: '@action' },
    {
        getQuestions: { method: 'GET', isArray: true, params: { action: 'Questions'}
    },

);    

然而,在这一点之后我陷入困境。 理想情况下,我想要做的是$ getAnswers方法从一个不同的资源(一个新的questionsResource)返回一个对象,然后有一个从答案资源返回的$ getAnswers方法。 这里的目标是将方法保留在实际资源对象上,而不是将它们提取到单独的工厂/服务调用中。

另外,我希望能够从存储库请求一个特定的问题。 像这样的东西:

var game = gameRepository.get(17);
var question = game.$getQuestion(1);

据我所知,没有办法按照我使用它们的方式将特定参数传递给$ resource自定义操作。

任何人都可以指引我走向正确的方向吗? 谢谢!


这最终比我想象的要容易得多。

$ resource函数创建一个从资源返回的所有对象继承的函数。 结果你可以做这样的事情:

gameResource.prototype.$getQuestion = function(id){ ... }
链接地址: http://www.djcxy.com/p/89555.html

上一篇: proper configuration for ngResource

下一篇: Mapping REST search endpoint onto $resource