2014-12-11 90 views
0

我试图弄清楚如何从控制器接收的数据可以在Ember.js的不同路由中使用。从控制器传递数据到Ember路由

我有这样一个控制器,它调用Ajax和成功时,调用successCallback功能:

App.LoginController = Ember.ArrayController.extend({ 
    ... 
    function successCallback(json){ 
    var userData = json; 
    self.transitionToRoute('dashboard'); 
    } 
    ... 
}); 

我想在LoginController中检索此userData,并在使用它仪表板视图。

App.DashboardRoute = Ember.Route.extend({ 
    model: function(){ 
    return this.controllerFor('login').get('userData'); 
    } 
}); 

我试过安慰this.controllerFor('login').get('userData');的结果,但没有任何回报。但是,在LoginController中转换之前安装数据表明数据确实已分配给变量userData

任何帮助将是伟大的!

回答

2

var userData = json;

声明userData作为一个局部变量,一旦你离开的方法,它失去范围。你必须在控制器上userData属性,然后使用

this.set('userData', value);

然后,该值将持续存在,仪表板路径可设置。

查看示例here

+0

非常感谢@ kalman-hazins!这工作完美。关于范围绝对有意义。 – michaellee 2014-12-11 15:46:56

相关问题