我正在使用 EmberJS 最新 1.7.0 开发 SPA,根据 Ember 文档,该路由包含一个包含对控制器的引用的属性,但它始终在我的所有路由中返回未定义。
ApplicationRoute = Ember.Route.extend({
queryParams: {
tsk: {
// Opt into full transition
refreshModel: true
}
},
model: function(params) {
var task = {"name" : "task"};
this.controller.set('currentTask',task);
return task;
}
});
并且在另一条路线上
SubfileRoute = Ember.Route.extend({
model : function(params) {
console.log(this.controllerName);
console.log(this.controller);
}
});
两者console.log(this.controllerName);
和console.log(this.controller);
都是未定义的,
如何正确使用 ember 控制器?似乎可行的唯一方法是通过 this.controllerFor()
更新:
我也尝试使用这种方法:
needs:'application',
currentTask : Ember.computed.alias('controllers.application.currentTask'),
而且 currentTask 总是未定义的,所以它自己的控制器。