我有一个附加到模型的集合。当我点击一个按钮时,我希望能够告诉骨干只将一个属性(包含该集合)保存到服务器
m.Survey = m.BaseModel.extend({
relations: [{
type: Backbone.HasMany,
key: 'invites',
relatedModel: 'APP.Models.SurveyInvite',
collectionType: 'APP.Collections.SurveyInvites',
//save invites separately
includeInJSON: false,
reverseRelation: {
key: 'survey',
//We don't want to list the survey when doing toJSON()
includeInJSON: false
}
}],
//need this method
saveInvites: function(){
this.saveOnly('invites');
});
});
我希望它发送到服务器:
POST / api / surveys / 123 /
{
invites: [
{<invite1>}, {<invite2>}, {<invitex>}
]
}
答案 0 :(得分:3)
您可以将Model.save
与patch
选项一起使用:
saveInvites: function(){
this.save({invites:this.get('invites')}, {patch:true});
});
而不是POST
请求,这将发送HTTP PATCH
。既然你要求RESTful方式,补丁就是这里使用的正确动词。如果您的服务器无法处理修补程序请求,您可以使用emulateHTTP
选项强制它POST
:
saveInvites: function(){
this.save({invites:this.get('invites')}, {patch:true, emulateHTTP:true});
});