コントローラーの初期プロパティ値に基づいてビューのテンプレートを選択する必要がある場合があります。したがって、ビューの init フック内にいる間にコントローラーにアクセスする必要がありますが、コントローラーにアクセスすると「null」が返されます。
MyApp.ApplicationController = Em.Controller.extend({
templateVersion: 'small'
});
MyApp.ApplicationView = Em.View.extend({
init: function(){
this._super();
console.log('Controller is: ',this.get('controller'));
if(this.get('controller').get('templateVersion') == 'small')
{
this.set('templateName', 'application-small');
} else {
this.set('templateName', 'application-bigger');
}
}
});
これは実際のケースではなく、実際のシナリオの例です。例として、ここでjsbinをセットアップしました