我有一个小的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端点,我认为不是最好的。
答案 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'这样做?