我有一個Backbone視圖,呈現一個日曆,該日曆依次呈現每一天的子視圖。每天都有一個模型和一個單擊事件,可以選擇或取消選擇一天。如果選擇一天,模型將被保存,如果未選中,模型將被銷燬。在Backbone中,一旦模型被破壞,如何替換視圖的模型?
一旦視圖的模型被破壞(因爲日期被取消選擇),我不知道如果日期被重新選擇,如何在日曆日期集合中保存新模型。該視圖只知道模型 - 與收藏無關。日曆視圖是否應該在模型銷燬時創建並附加新模型到日期視圖?還是應該通過收集日期視圖,並自己做到這一點?還是有更好的解決方案?
這裏是我的代碼的某些代碼段爲清楚:
var CalendarView = Backbone.View.extend({
initialize: function() {
this.model.dates.on('reset', this.renderDates, this);
},
renderDates: function() {
// Loop through the number of days to display and create a view for each.
// Find a model for the date. If one doesn't exist, this returns a new model.
model = this.model.dates.completedOn(date.format('YYYY-MM-DD'));
view = new DateView({
model: model
});
$dates.append(view.render().el);
// End loop.
}
});
var DateView = Backbone.View.extend({
events: {
'click .date': 'toggleDate'
},
toggleDate: function() {
if (this.model.selected()) {
this.model.destroy();
}
else {
this.model.save();
}
}
});
感謝您的幫助!