自定义保存中的Ember ActiveModelAdapter错误

时间:2014-06-11 17:37:27

标签: ember.js ember-data

我压倒了我的模型.save的成功和失败,因此我可以在创建记录后对用户进行一些身份验证。不幸的是,这并没有使用ActiveModelAdapter通常为您填充的错误对象填充模板。如何在此处恢复默认的错误处理行为?

UsersNewController = Ember.ObjectController.extend
  actions:
    create: ->
      self = this
      email = @get('email')
      typedPassword = @get('password')
      user = this.store.createRecord 'user',
        email: email,
        password: @get('password')
      user.save().then( (->
        self.get('session').authenticate('authenticator:custom',
          identification: email
          password: typedPassword
        )), (error) ->
          # error => InvalidError https://github.com/emberjs/data/blob/v1.0.0-beta.8/packages/activemodel-adapter/lib/system/active_model_adapter.js#L86
      )

1 个答案:

答案 0 :(得分:0)

在路线而不是控制器上执行此操作帮助我解决了这个问题:

UsersNewRoute = Ember.Route.extend(
  model: ->
    return @store.createRecord('user')
  actions:
    save: (user) ->
      self = this
      typedPassword = user.get('password')
      user.save().then( (res) ->
          self.get('session').authenticate('ember-simple-auth-authenticator:oauth2-password-grant', {
            identification: user.get('email'),
            password: typedPassword
          })
        , (res) ->
          # no-op
      )
    willTransition: (transition) ->
      user = @get('currentModel');
      user.deleteRecord()
)

`export default UsersNewRoute`