我有一个类似的骨干模型。
User = Backbone.Model.extend({
defaults: {
id: null,
name: '',
groups: []
},
addGroup: function(group) {
return this.sync(
'update',
this,
{url: this.url() + 'add_group', data: 'group=' + group}
);
}
}
UserCollection = Backbone.Collection.extends({
model: User,
url: '/api/users'
});
此调用背后的目的是添加权限会触发各种后端检查和其他更改。实际的代码,我试图不在这里公开,表明需要更好。
/ api / users / add_group端点返回Users模型的新表示,我希望将其应用于模型,并触发所有相应的事件。我能找到的最好的解决办法就是这个。
User = Backbone.Model.extend({
defaults: {
id: null,
name: '',
groups: []
},
addGroup: function(group) {
model = this;
return this.sync(
'update',
this,
{
url: this.url() + 'add_group',
data: 'group=' + group,
success: function() {model.fetch();}
}
);
}
}
然而,感觉可能有一个更好的解决方案,我可以调用任意端点并使用返回的数据更新模型。