Backbone.js 取消后的主干渲染
我有以下主要观点。我有点怀疑。如果模型被删除,我会在取消后调用render(第一种方法),另一种方法是使用initialize函数,该函数在视图中呈现模型,以侦听事件更改。(第二种方法) 有人能告诉我一和二的区别吗。至于哪一个更好 第一种方法 var AppointView=Backbone.View.extend({ 模板:u.template(“>”+ '' + "x", 第二种方法Backbone.js 取消后的主干渲染,backbone.js,Backbone.js,我有以下主要观点。我有点怀疑。如果模型被删除,我会在取消后调用render(第一种方法),另一种方法是使用initialize函数,该函数在视图中呈现模型,以侦听事件更改。(第二种方法) 有人能告诉我一和二的区别吗。至于哪一个更好 第一种方法 var AppointView=Backbone.View.extend({ 模板:u.template(“>”+ '' + "x", 第二种方法 var AppointmentView = Backbone.View.extend({ templat
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()));
}
});
var AppointmentView=Backbone.View.extend({
模板:u.template(“”+
'' +
''),
初始化:函数(){
this.model.on(“change”,this.render,this);
},
事件:{“单击a”:“取消”},
取消:函数(){
这个.model.cancel();
},
render:function(){
this.el.html(this.template(this.model.toJSON());
}
});
我将定义一个自定义的取消的
事件,从取消
方法触发该事件,并在视图中绑定到该事件
var Appointment = Backbone.Model.extend({
cancel: function() {
//cancellation code...
this.trigger('cancelled', this);
}
});
var AppointmentView = Backbone.Model.extend({
initialize: function() {
this.listenTo(this.model, 'cancelled', this.render);
}
});
这样,即使从视图本身以外的其他位置取消了模型,视图也会重新渲染,但您仍然可以获得特定的行为,或者仅在
取消时重新渲染,而不是每次更改时重新渲染。取消方法对模型做了什么?因为您不能通过调用模型本身的方法来删除模型(没有意义),或者反过来问…你想实现什么?模型更改后的渲染还是从集合中删除模型后的渲染?@Drejc,model#destroy
是一个通过调用模型上的方法从集合中删除模型的方法的示例。只需说明。因此,无论哪种方法,你都需要通知col通过直接或间接删除模型,选择模型不再存在。
var Appointment = Backbone.Model.extend({
cancel: function() {
//cancellation code...
this.trigger('cancelled', this);
}
});
var AppointmentView = Backbone.Model.extend({
initialize: function() {
this.listenTo(this.model, 'cancelled', this.render);
}
});