4

我在 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()模型将发出一个 PUT 请求,/api/user/:id这很好。

但是,在前端我想要 3 种形式 - updatePersonalDetails, updateUserName, updatePassword.

在我当前的实现中,这些都将使用相同的模型并且都使用save()相同的端点/api/user/:id。我的问题是我不知道用户发布的表格。

什么是这个问题的最佳解决方案,同时仍然符合 RESTful 标准?有 3 个单独的模型 -UserDetailsModelUserPasswordModel?或者只对整个模型进行批量更新,无论用户发布哪种形式。

4

1 回答 1

2

在问题评论中讨论了关于模型分离与模型 BULK 的分配,我没有什么要补充的。

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

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

在主干中,您只需要使用 url 选项保存模型

model.save({}, {
  url: model.url() + "?form=my_special_form"
});
于 2013-06-30T12:59:41.403 回答