Emberjs从LoginController设置CurrentUserController

时间:2014-04-06 22:54:55

标签: ember.js

我有一个currentUser objectController:

App.CurrentUserController = Em.ObjectController.extend({
  username: 'Test',
  email : 'test@test.com'
})

当用户登录时,我想设置currentUser的用户名,电子邮件等:

App.LoginController = Ember.Controller.extend({
needs: 'currentUser',
login: function(){
    var self = this;
    var data = this.getProperties('username', 'password');
    self.set('errorMessage', null);
    $.ajax({
      type: "POST",
      url: url,
      mimeType: "text/xml",
      success: function(response){
        App.CurrentUser.set('username', data.username);
        App.CurrentUser.set('email', data.email);
        self.transitionToRoute('home');
      },
      error: function(){
         self.set('errorMessage', true);
      }
    });
       }
   });

我上面试过没有运气。

1 个答案:

答案 0 :(得分:0)

没有可用的App.CurrentUser实例。

App.CurrentUser.set('username', data.username);

由于您正在使用'需要',您可以像这样访问该控制器:

this.get('controllers.currentUser')

确保您的&#39; <&#39; 在您的XHR回复中正确绑定。

最后,由于Ember getter / setters支持&#39;路径&#39;,您可以设置如下属性:

this.set('controllers.currentUser.email', data.email);