保存后Ember.js更新模型

时间:2014-08-01 09:04:47

标签: authentication ember.js

我有一个小的Ember应用程序,并在后台使用简单的API添加身份验证:

POST /login
//returns
{
  "token": "Much53cr4t"
}

登录的Ember模型(正确设置路线并按预期调用端点)

App.Login = DS.Model.extend({
  username: DS.attr(),
  password: DS.attr(),
  token: DS.attr()
});

控制器

App.LoginController = Ember.ObjectController.extend({
  // Implement your controller here.
  actions: {
    submit: function() {
      var self = this;
      var login = self.get('model');
      login.set('username', self.get('username'));
      login.set('password', self.get('password'));
      login.save().then(function (result) {
        //do something here?
      });
   }
 }

});

我想在保存之前将新返回的token值添加到创建的模型中,或者添加新值。哪个更容易。除了“返回一个id”之外,似乎找不到任何其他建议,但是对于像这样的AUTH API端点,我认为不是最好的。

1 个答案:

答案 0 :(得分:0)

所以我最终为此添加了一个自定义REST适配器:

App.LoginAdapter = DS.RESTAdapter.extend({
  host: 'http://127.0.0.1',
  createRecord: function(store, type, record) {
    var p = this._super(store, type, record);

    return p.then(function(data){
      record.set('token', data['token']);
    });
  },
});

仍然怀疑是否有一种更容易或更多的Ember-way'这样做?