アンダースコアテンプレートを使用してバックボーンビューを実装しています。ビューelは、setElement-functionを使用してテンプレートhtmlに置き換えられます。関数の宣言では、 "...ビューの委譲されたイベントを古い要素から新しい要素に移す"と述べていますが、何らかの理由でこれが機能しません。バックボーン宣言に記載されているように、これがなぜ機能しないのでしょうか?ここでsetElementの後にバックボーンイベントが新しい要素に委任されない
状況(ビューの関連部分)の例です:
initialize: function(args) {
_.extend(this, args);
this.listenTo(this.model, 'change', this.render);
},
events: {
'click .active-area': '_test'
},
_test: function() {
// After "setElement" this doesn't fire anymore.
this.model.set('color', 'green');
},
render: function() {
// After this the "click" listener no longer exists.
this.setElement(this.template(this.model.toJSON());
return this;
}
良い点!実際このソリューションは私の場合は機能しません。私は要素htmlをテンプレートhtmlに置き換える必要があるので、setElement関数を使用する必要があります。 –
@QDあなたのページにラッピング要素を作り、この要素のルートをテンプレートに移動します。 –
申し訳ありませんが、私は完全にフォローしていません。これがどのように機能するのか、もっと説明していただけますか? –