我想用这样的 POST 请求检索文件的关键字集合:
api.host.com/file/4/keywords
但是我如何定义我的url
和urlRoot
关键字模型和关键字集合?我已经阅读了文档,但我无法弄清楚。
我想用这样的 POST 请求检索文件的关键字集合:
api.host.com/file/4/keywords
但是我如何定义我的url
和urlRoot
关键字模型和关键字集合?我已经阅读了文档,但我无法弄清楚。
像往常一样,一般来说,尤其是在 JS 中,有很多方法可以做到这一点。我可以告诉你几种我会这样做的方法。
1)我将keywords
Collection 定义为
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
Collection 定义为
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'
}