var ItemView = Backbone.View.extend({
events: {},
render: function(){
this.$el.html(this.model.toJSON());
return this;
}
});
这里return this;的作用:可以让我们把ItemView作为子view重复使用。我们也可以利用它在呈现之前做预渲染(pre-render)。
重复使用ItemView的例子:
var ListView = Backbone.View.extend({
render: function(){
// 假定items是model暴露的需要呈现的list
var items = this.model.get('items');
// 使用Underscore的_each方法遍历每个item
_.each(items, function(item){
// 创建一个新的ItemView实例,传入指定的model项
var itemView = new ItemView({ model: item });
// itemView的DOM元素渲染之后追加到ListView的el中。
// 这里'return this'可帮助在render之后访问到它的输出("el")
this.$el.append( itemView.render().el );
}, this);
}
如果不使用return this; ListView需要这样写:
var ListView = Backbone.View.extend({
render: function(){
var items = this.model.get('items');
_.each(items, function(item){
var itemView = new ItemView({ model: item });
itemView.render();
this.$el.append(itemView.el );
}, this);
}