我在Backbone中构建了一个简单的用户模型
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个表单 - updatePersonalDetails
,updateUserName
,updatePassword
。
使用我当前的实现,这些将全部使用相同的模型,并且所有save()
使用相同的端点/api/user/:id
。我的问题是我不知道用户发布了哪种形式。
这个问题的最佳解决方案是什么,同时仍然符合RESTful标准?有3个单独的模型 - UserDetailsModel
,UserPasswordModel
等?或者只是对整个模型进行批量更新,无论用户发布的是哪种形式。
答案 0 :(得分:2)
关于理解UPDATE请求表单源的需要,您可以使用查询字符串参数:
只是POST / api / user / 1?form = my_special_form
在主干中,您只需要使用url选项保存模型
model.save({}, {
url: model.url() + "?form=my_special_form"
});