私が十分に明確であることを願っています。そうでない場合は、説明を求めてください。
メイン テンプレートに合わせてエンド クリエイト ビューを削除したいのですが…</p>
次の実装を試みましたが、失敗しました。
// main-template.html
<div id=""project>
<div class="main-template">
<div id="view1"></div>
<div class="foldable-block">
<div id="view2"></div>
<div id="view3"></div>
</div>
</div>
</div>
//mainView.js
define([
"js/views/view1",
"js/views/view2",
"js/views/view3",
"text!templates/main-template.html"
], function (View1, View2, View3, mainTemaplte) {
var MainView = Backbone.View.extend({
initialize: function ()
{
this.$el.html(Mustache.render(mainTemaplte));
this.render();
},
el: $("#project"),
render: function ()
{
var options = this.options;
this.view1 = new View1(options);
this.view2 = new View2(options);
this.view3 = new View3(options);
}
});
return MainView;
});
//view1.js
define([… ], function (..) {
var View1 = Backbone.View.extend({
el: $("#view1"),
initialize: function () {
console.log(this.$el) // []
setTimeout( function () {
console.log(this.$el) // []
}, 2000);
}
});
return View1;
});
コメントからわかる問題はview1.js
(this.$el) // []
私のjsコンソールから動作します:
$("#view1") // <div>….</div>
私の目標は次のとおりです
。1) mainView.js モジュールをロードするときに、ビュー (view1、view2、view3) をアタッチするテンプレートを作成したい
2) ビューがアタッチされているすべての DOM のビューの削除をトリガーするとき、削除する必要があります。
3) モジュールを再度呼び出すとmainView.js
、テンプレートを再作成する必要があります。
提案する他のアイデアがある場合は、投稿してください。
@nikoshr のおかげthis.$el
で、 inview1.j
が定義されており、render を呼び出すと、view1.js
適切this.$el
に塗りつぶされます
が、ドキュメントの本文には添付されません。
私のに追加または同様のjqueryメソッドを使用せずにそれを作成するにはどうすればよいmain-template.html
ですか?
ここで私のレンダリング機能:
render: function ()
{
this.$el.html(Mustache.render(myTemplate, this.view);
}