有人可以解释一下,视图(控制器)的生命周期是什么,例如,TODO 列表应用程序中的行?
App.RowView = Backbone.View.extend({
events:{
"click #del" : "delRow"
}
});
大多数教程中,AppView 会这样做:
render: function()
{
this.collection.each(this.renderRow, this);
return this;
},
renderRow: function(row)
{
var rowView = new App.RowView({model:element});
this.$('#rows').append(rowView.render().el);
}
问题:
- 这是否意味着
rowView
只使用一次并丢弃renderRow()
?还是它继续存在? - 如果是真的,什么时候杀死视图?添加监听器并在视图中
model.destroy
调用是否足够好?remove()
- 如果我已经从服务器呈现了行的标记,
click #del
事件是否仍会被捕获并做一些没有rowView
创建的事情? - 不
'click #del'
应该更好地位于父视图中,以便 jQuery 可以在那里委托和附加行为? - 这是否意味着我每行有 1 个 rowView?这不意味着 _.template 正在每一行上编译吗?有什么选择吗?