我想检索一个带有POST请求的文件关键字集合,如下所示:
api.host.com/file/4/keywords
但是如何定义我的url
和urlRoot
关键字模型和关键字集合?
我已经阅读了docs,但我无法理解。
答案 0 :(得分:3)
像往常一样,一般情况下,特别是在JS中,有很多方法可以做到这一点。我可以告诉你几种方法。
1)我将keywords
集合定义为
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)我将keywords
集合定义为
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'
}