http://jsbin.com/onikid/3/edit
content
誰かがオーバーライドされたinit
呼び出しから持続しない理由を教えてもらえますか? 設定content
するsetupController
と問題なく動作しますが、このコントローラーは複数のルートから使用でき、すべての「子」ルートで初期化する必要があるため、これはやりたくありません。
http://jsbin.com/onikid/3/edit
content
誰かがオーバーライドされたinit
呼び出しから持続しない理由を教えてもらえますか? 設定content
するsetupController
と問題なく動作しますが、このコントローラーは複数のルートから使用でき、すべての「子」ルートで初期化する必要があるため、これはやりたくありません。
保存されますが、再び ember によってオーバーライドされます。次のコードは、セットアップ中にルートによって実行されます(Ember ソースへのリンク)。あなたのケースでこの関数が呼び出されると、コンテキストは未定義です。したがって、コントローラーのコンテンツ (モデルはエイリアス) は未定義に設定されます。
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);
}
},
したがって、コントローラーのコンテンツは常に渡されたコンテキストに設定されるため、要件を満たすことができない場合があります。