ember数据在保存时注入元数据

kun*_*erd 4 ember.js ember-data

我正在开发一个Ember.js应用程序,目前我尝试实现用户注册.到目前为止,我找到了两种方法来实现这一点,但两者都有一些缺点.

一种方法是使用注册控制器,该控制器使用电子邮件,密码和密码确认值对服务器执行自定义ajax发布.我真的不喜欢这个地方的自定义ajax调用,我更喜欢使用EmberData用户模型并保存它,但我不想在客户端存储密码和密码确认值.

我发现,有一种方法可以从服务器接收模型的元数据,所以我的问题是,还有一种方法可以将元数据保存到服务器吗?

其他解决方案,无需在客户端存储密码也是受欢迎的.

Kin*_*n2k 7

当然,创建一个自定义序列化程序并覆盖序列化

App.UserSerializer = DS.RESTSerializer.extend({
  serialize: function(record, options) {
    var json = this._super(record, options);

    // assuming niner isn't an attr on the model definition
    // just a value added to the model that I want to include in the meta data  
    json.meta = { typedPass: record.get('typedPass') };  

    return json;
  }
});
Run Code Online (Sandbox Code Playgroud)

顺便说一句,你绝对不应该存储,也不应该将密码传输给客户端.我假设您正在编写某种登录页面但并不打算这样做,我只是将其编写为CYA.

//没有定义密码,它只会发送id和user属性.

App.User = DS.Model.extend({
  user: DS.attr()
});

App.ApplicationRoute = Em.Route.extend({
  model: function(){
    var user = this.get('store').createRecord('user', {user:'cow'});
    user.set('typedPass', 'some crazy cow password'); // the default serializer wouldn't attach this when you save
    user.save();
  }
});
Run Code Online (Sandbox Code Playgroud)