私の質問はおそらく非常に単純な答えを必要としますが、それにもかかわらず、私は簡単に見つけることができませんでした。
私が取り組んでいるバックボーンアプリケーションには、いくつかのビューがあります。さまざまなビューを定義するときは、初期化関数で_.bindAllを使用して、「this」ビューオブジェクトをビューのレンダリング関数に接続します。例えば:
DiscussedItemView = Backbone.View.extend({
...
initialize: function() {
_.bindAll(this, "render");
},
render: function() {
this.$el.attr('id', 'li-meeting-task-' + this.model.getId());
this.$el.html(JST['tasks_sandbox/agenda_task_item']({
taskName : this.model.getName(),
taskId : this.model.getId()
}));
return this;
},
...
});
DiscussedItemViewの新しいインスタンスを作成するには、次のようにします。
...
var discussion_agenda_row = new DiscussedItemView({model: task});
discussion_agenda_row.render();
this.$( '#meeting-items-list' ).append(discussion_agenda_row.$el);
...
コードは正常に機能します。それでも、discussion_agenda_rowでrender()関数を明示的に使用する必要がある理由がわかりません。新しいDiscussedItemViewインスタンスを初期化すると、自動的にrender関数が呼び出されると思いましたが、discussion_agenda_row.render();
行を削除するとHTMLが表示されません。どこが間違っているの?
ありがとう、アレクサンドラ