http://jsbin.com/onikid/3/edit
有人可以告诉我为什么content
没有通过覆盖init
电话持续存在?如果我在content
中设置setupController
它可以正常工作,但这不是我想要做的事情,因为我可以从多个路径使用此控制器,我将不得不在所有“子”路由中初始化它。
答案 0 :(得分:3)
它被保存但被ember再次覆盖。设置(Link to Ember Source)期间,路由运行以下代码。在您的情况下调用此函数时,上下文无法使用。因此,控制器的内容(模型是别名)设置为undefined。
setup: function(context) {
this.redirected = false;
this._checkingRedirect = true;
this.redirect(context);
this._checkingRedirect = false;
if (this.redirected) { return false; }
var controller = this.controllerFor(this.routeName, context);
if (controller) {
this.controller = controller;
set(controller, 'model', context);
}
if (this.setupControllers) {
Ember.deprecate("Ember.Route.setupControllers is deprecated. Please use Ember.Route.setupController(controller, model) instead.");
this.setupControllers(controller, context);
} else {
this.setupController(controller, context);
}
if (this.renderTemplates) {
Ember.deprecate("Ember.Route.renderTemplates is deprecated. Please use Ember.Route.renderTemplate(controller, model) instead.");
this.renderTemplates(context);
} else {
this.renderTemplate(controller, context);
}
},
因此,您的要求可能无法实现,因为控制器的内容将始终设置为传递的上下文。