1

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 の上にポップアップを表示することです。

4

1 に答える 1