これはそれほど難しいことではありません。
datepicker UI ウィジェットがあり、ユーザーが月をクリックするたびに、その月をMonthsController
(an ArrayController
) に追加または削除したいと考えています。はMonthsController
ルートに関連付けられていないため、私のApplicationTemplate
場合は単純に
{{render months}}
私のdatepickerビューの簡易版は
App.DatepickerView = Ember.View.extend({
click: function(e) {
var id = $(this).datepicker().data('date').replace(" ", "-");
this.get('controller.controllers.months').toggleMonth(id);
}
});
そして、私は私のイベントを処理しますMonthsController
:
App.MonthsController = Ember.ArrayController.extend({
toggleMonth: function(id) {
var month = App.Month.find(id),
index = this.indexOf(month);
if (index === -1) {
this.pushObject(month);
} else {
this.removeAt(index);
}
}
});
私はこれが機能していると思っていましたがmonth
、最後のスニペットは実際には ではなく、App.Month
単なる (おそらく) 匿名オブジェクトであることに気付きました。
モデルをプログラムでコントローラーに追加/削除するにはどうすればよいですか?