1

我想用这样的 POST 请求检索文件的关键字集合:

api.host.com/file/4/keywords

但是我如何定义我的urlurlRoot关键字模型和关键字集合?我已经阅读了文档,但我无法弄清楚。

4

1 回答 1

3

像往常一样,一般来说,尤其是在 JS 中,有很多方法可以做到这一点。我可以告诉你几种我会这样做的方法。

1)我将keywordsCollection 定义为

Keywords = Backbone.Collection.extend( { ... } )

然后将它用作File模型的属性,我会在期间设置正确的值initialize()

File = Backbone.Model.extend({

    // the empty array [] is the initial set of models
    this.keywords = new Keywords([], { url: '/file/' + this.id + '/keywords' });

})

这样你就可以调用file.keywords.fetch()来获取内容。

2)我将keywordsCollection 定义为

Keywords = Backbone.Collection.extend({

    initialize: function(models, options) {
        this.modelId = options.modelId
    },

    url: function() {
        return '/file/' + this.modelId + '/keywords'
    }

});

然后,当需要时,我会创建这样的实例:

File = Backbone.Model.extend({

    this.keywords = new Keywords([], { modelId: this.id });

})

为了给您一个完整的答案,您实际上可以删除该initialize()功能(如果您不需要它)并将其编写url

url: function() {
    return '/file/' + this.options.modelId + '/keywords'
}
于 2013-06-06T14:38:23.810 回答