私は次のバックボーンビューを持っています。疑問がありました。モデルが削除された場合、キャンセル後にレンダリングを呼び出します(最初のアプローチ)。別の方法は、ビュー内でイベントの変更をリッスンするモデルをレンダリングする初期化関数を使用することです(2番目のアプローチ)。 )。
誰かが私に知らせてくれませんか、1と2の違い。2つのうちどちらが良いかについて。
最初のアプローチ varAppointmentView= Backbone.View.extend({template:_.template('">' +'<%= title%>' +'x')、
events: { "click a": "cancel" },
cancel: function(){
this.model.cancel();
this.render(); // rendering after cancel
},
render: function(){
this.$el.html(this.template(this.model.toJSON()));
}
});
2番目のアプローチ
var AppointmentView = Backbone.View.extend({
template: _.template('<span class="<% if(cancelled) print("cancelled") %>">' +
'<%= title %></span>' +
'<a href="#">x</a>'),
initialize: function(){
this.model.on("change", this.render, this);
},
events: { "click a": "cancel" },
cancel: function(){
this.model.cancel();
},
render: function(){
this.$el.html(this.template(this.model.toJSON()));
}
});