Backbone可以按ID获取模型,但如果我想根据资源ID获取集合,例如"api/users/:userId/roles/"
:userId
是动态的,那该怎么办? 如何在Backbone中实现此功能?我不想为从userModel.roles
api/users/
属性
答案 0 :(得分:2)
var Roles = Backbone.Collection.extend({
url: function(){
var url = '/api/users/' + this.user.id + '/roles';
return url;
}
});
这是最低限度,假设您的用户模型是Roles集合中的属性。我会考虑将关系抽象为AssociatedModel
和AssociatedCollection
,或者查看many Backbone plugins available。
答案 1 :(得分:1)
许多主干属性可以使用函数而不是字符串,这样可以让您在需要时更灵活。如果您查看documentation中url
的示例,您会看到一个示例
// Or, something more sophisticated:
var Notes = Backbone.Collection.extend({
url: function() {
return this.document.url() + '/notes';
}
});
在您的情况下,您可能需要类似以下内容
url: function () {
//myUserID should probably be coming from your model or somewhere
return 'api/users/' + myUserID + '/roles/';
}