Ember でシンプルなカレンダー アプリを作成しています。私のビューはこのようにネストされています:
<script type="text/x-handlebars" data-template-name="calendar">
{{content.monthAsString}}
{{#each day in content.days}}
{{view App.DayView contentBinding="day"}}
{{/each}}
</script>
<script type="text/x-handlebars" data-template-name'="calendarDay">
{{content.date}}
</script>
私のJSコード:
App.CalendarController = Ember.ObjectController.extend({
content:App.Calendar.create(...);
oneDayHover:function(day){
}
});
App.CalendarView = Ember.View.extend({
templateName:"calendar"
});
App.CalendarDayController = Ember.ObjectController.extend({
dayHOver:function(){
//???? HOW TO ACCESS CalendarController?????
}
});
App.CalendarDayView = Ember.View.extend({
templateName:"calendarDay",
init:function(){
this._super();
this.set('controller', App.CalendarDayController.create());
},
mouseEnter:function(){
this.get('controller').dayHover();
}
});
問題 1: ビューの init メソッドをオーバーライドしてコントローラーを設定するよりも良い解決策はありませんか?
問題 2: CalendarDayController から CalendarController の oneDayHover にアクセスするにはどうすればよいですか?
助けてくれてありがとう
更新 1: これらのコントローラーは同じ状態で存在することに注意してください。mouseenter のポイントは、追加情報を含む CalendarDayView の上にポップアップを表示することです。