以下似乎是在 Backbone.js 中创建小型子视图的一种非常常见的模式this.$el.append(new ListItem({...}).render().el)
:
我只能想到外部原因调用的问题render
,例如尚未获取视图的数据。这就是为什么我让视图处理它自己的渲染。我在这里错过了什么吗?
编辑:伪代码示例(省略无关代码等)以澄清事情:
为什么要render
显式调用以下内容:
var FruitView = Backbone.View.extend({
render: function() {
this.$el.html(...);
}
});
var FruitListView = Backbone.View.extend({
render: function() {
this.collection.each(function(fruit) {
this.$el.append(new FruitView({...}).render().el);
});
}
});
而不是这个 whereFruitView
负责自己的渲染:
var FruitView = Backbone.View.extend({
initialize: function() {
this.render();
},
render: function() {
this.$el.html(...);
}
});
var FruitListView = Backbone.View.extend({
render: function() {
this.collection.each(function(fruit) {
this.$el.append(new FruitView({...}).el);
});
}
});