具有多个更新path的主干用户模型

我在Backbone中构build了一个简单的用户模型

define([ 'underscore', 'backbone' ], function(_, Backbone) { var UserModel = Backbone.Model.extend({ urlRoot: '/api/user', idAttribute: '_id', defaults: { userName: '', password: '' personalDetails: { title: '', name: { firstName: '', lastName: '' }, gender: '', dob: '' } } }); return UserModel; }); 

在模型上调用save()会向/api/user/:id发出PUT请求,这很好。

但是,在前端我想要3种forms – updatePersonalDetailsupdateUserNameupdatePassword

在我目前的实现中,这些将全部使用相同的模型,并且全部使用save()到相同的endpoint /api/user/:id 。 我的问题是,我不知道用户张贴的forms。

这个问题的最佳解决scheme是什么,同时还符合RESTful标准? 有3个独立的模型 – UserDetailsModelUserPasswordModel等? 或者只是在整个模型上进行批量更新,无论用户发布的是哪种forms。

关于模型分离与模型BULK在问题评论中已经讨论过,我没有在那里添加。

关于您需要了解UPDATE请求表单源,您可以使用查询string参数:

只需POST / api / user / 1?form = my_special_form

在主干你只需要保存模型与url选项

 model.save({}, { url: model.url() + "?form=my_special_form" });