Backbone.js非休息(用户)模型

onl*_*oon 0 javascript backbone.js

我有以下用户模型:

var UserModel = Backbone.Model.extend({
  urlRoot: 'user',
  defaults: {
    fullName: null,
    email: null,
    password: null
  }
});
Run Code Online (Sandbox Code Playgroud)

现在我们可以CRUD(注册,更新信息,删除和获取用户)但是如何:

  • 忘记密码
  • 激活帐户

我如何扩展我的UserModel以实现这一目标?

onl*_*oon 5

我自己得到了答案.所以我再一次需要非crud操作,如:

  • POST/users/restore-password
  • POST/users/activate

解:

function nonCrudOperation(urlSegment, requestMethod){
  return Backbone.sync.call(this, null, this, _.extend({
    url: this.url() + '/' + urlSegment,
    type: requestMethod
  }, options));
};

var UsersModel = Backbone.Model.extend({
  urlRoot: 'user',
  activate: function(options){
    return nonCrudOperation.call(this, 'activate', 'POST');
  },
  restorePassword: function(options){
    return nonCrudOperation.call(this, 'restore-password', 'POST');
  }
});
Run Code Online (Sandbox Code Playgroud)