単純なビュー (削減されたコード):
My.View = Backbone.View.extend({
className: 'my-view',
initialize: function() { },
render: function() {
console.log('render');
return this;
}
});
次のように、別のビューでサブビューとして使用します。
var myView = new My.View();
this.$el.append(myView.render().$el);
まず、className の代わりにビューにテンプレートがあり、ビューが正常にレンダリングされました。ただし、テンプレートを削除して代わりに className を追加すると、正しくレンダリングされません。
div と正しいクラス名をレンダリングするだけですが、render メソッドでのロギングは実行されません。そして、 render メソッド内に html を this.$el に追加すると、表示されません。理由はありますか?
アップデート:
カスタム レンダリング コードを afterRender メソッド内に配置すると、機能します。私の場合、render メソッドを上書きできないのはなぜですか?