0

カレンダーを含む backbone.js モデルがあります。ユーザーはカレンダーを前後に移動でき、選択したカレンダー日のイベントを取得できます。

私のモデルでは、私は持っています

初期化: 関数(){
    this.on('change:date',this.get_cal());
}、
get_cal: 関数(){
    alert('カレンダーを取得');
    this.fetch(...
}

そして私の見解では、

cal_date: 関数(移動){
    Myapp.cal.attributes.date.setDate(Myapp.cal.attributes.date.getDate()+move);

}

日付が変わると、バックボーンが変更イベントをトリガーし、新しい日付のカレンダー イベントを取得することを期待していました。残念ながら、それは起こっていません。

また、印刷された日付をモデルに入れてみました

Myapp.cal.set({print_date:formatted_date});

「set」を呼び出していないため、または日付オブジェクトを見て、すでに日付オブジェクトがあり、したがって変更されていないと考えているため、バックボーンに更新がない可能性があると考えています。

また、ビューで , を使用して変更をトリガーしようとしましMyapp.cal.trigger('change')たが、それも機能しませんでした。Myapp.cal.cal_events.refresh()また、 cal_events が日のイベントを保持するコレクションである場所を呼び出すことによって、カレンダー イベントを削除しませんでした。

ここで何が問題なのか分かりますか?

4

1 に答える 1

3

問題は、この行のget_callの後の括弧にあると思います:

this.on('change:date',this.get_cal());

それらをイベント ハンドラにする代わりに、initialize でget_callを呼び出すため、それらを削除する必要があります。

于 2012-11-02T00:45:50.660 に答える