Ember singletons - 实现current_user行为

时间:2013-11-27 02:48:53

标签: ruby-on-rails ajax authentication ember.js devise

我正在使用rails 4,ember-rails,ember-source 1.2.0应用程序,并设计用于身份验证。

我让应用程序成功发出身份验证请求,接收用户详细信息,现在我需要一个在整个应用程序中存储“current_user”的好地方。我已经尝试编写自己的初始化程序来进行一些注入,但它似乎不是一个记录良好的代码路径:

Admin.initializer({
  name: 'currentUser',
  initialize: function(container, application){
    container.optionsForType('user', { instantiate: false, singleton: true });

    application.register('user:current',Admin.User.createRecord({}));
    application.inject('route','current_user','user:current')
    application.inject('controller','current_user','user:current')
    application.inject('view','current_user','user:current')
  }
})

此代码错误原因是:

Assertion failed: Error while loading route: TypeError: Cannot call method 'set' of undefined

如何注册单个模型并使其一直显示到视图级别?一旦我注册了单身人士,我将发出一个ajax登录请求并填写其属性或将用户发送到登录屏幕。

1 个答案:

答案 0 :(得分:0)

这就是它的工作原理,你的错误正在其他地方发生。您需要显示其他信息。

http://emberjs.jsbin.com/esEYIrIR/2/edit