以下は、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);
});
}
});
これの代わりにFruitView
、独自のレンダリングを処理します。
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);
});
}
});