使用从backbone.sync调用

时间:2016-01-11 22:34:11

标签: javascript backbone.js

我有一个类似的骨干模型。

User = Backbone.Model.extend({
  defaults: {
    id: null,
    name: '',
    groups: []
  },
  addGroup: function(group) {
    return this.sync(
      'update',
      this,
      {url: this.url() + 'add_group', data: 'group=' + group}
    );
  }
}

UserCollection = Backbone.Collection.extends({
  model: User,
  url: '/api/users'
});

此调用背后的目的是添加权限会触发各种后端检查和其他更改。实际的代码,我试图不在这里公开,表明需要更好。

/ api / users / add_group端点返回Users模型的新表示,我希望将其应用于模型,并触发所有相应的事件。我能找到的最好的解决办法就是这个。

User = Backbone.Model.extend({
  defaults: {
    id: null,
    name: '',
    groups: []
  },
  addGroup: function(group) {
    model = this;
    return this.sync(
      'update',
      this,
      {
        url: this.url() + 'add_group',
        data: 'group=' + group,
        success: function() {model.fetch();}
      }
    );
  }
}

然而,感觉可能有一个更好的解决方案,我可以调用任意端点并使用返回的数据更新模型。

0 个答案:

没有答案