我正在试图弄清楚从控制器接收的数据如何在Ember.js中的不同路线中使用。
我有一个这样的控制器,正在进行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
。
任何帮助都会很棒!
答案 0 :(得分:2)
var userData = json;
将userData
声明为局部变量,一旦离开方法就会失去范围。您需要在控制器上具有userData
属性,然后使用
this.set('userData', value);
然后,该值将保持不变并在仪表板路径中可用。
查看工作示例here