私はこの世界に不慣れで、バックボーンとマリオネットの概念のいくつかを理解する必要があります。ここでは、私が学んでいる概念のいくつかを説明しようとしています。それらについてフィードバックをいただければ幸いです。
このrender
関数は、テンプレートをレンダリングするためのロジックを定義します。完了すると、onRender
コールバックが呼び出されます。ここでは、レンダリングされたビューが DOM にアタッチされていないとします。これは、添付したテンプレートを含むtagName
(デフォルトは)によって構成されています。div
そのタグを DOM に明示的に挿入するには、どこかに追加する必要があります。私が間違っている?
一般的に、私は次のことを行います。
var view = new MyView();
view.render();
$("container").append(view.$el);
Marionette は、領域の概念で Backbone を拡張します。このshow
メソッドをリージョンで呼び出して、特定のビューを表示できます。
var view = new MyView();
region.show(view);
この場合、show
メソッドはrender
それ自体で関数を呼び出し、最後に、ビューのコンテンツが DOM に配置されるときに、onShow
そのビューで が呼び出されます。大丈夫ですか?
Marionette doc から、 と呼ばれる別のコールバックもありますonDomRefresh
。私の実験から、このメソッドが前に呼び出されていることに気付きましたonShow
。したがって、私の推測では、ビューはまだ DOM にアタッチされていません。しかし、ドキュメントは次のように述べています。
ビューがレンダリングされた後にトリガーされ、Marionette.Region を介して DOM に表示され、再レンダリングされました。
そのヒントを教えていただけますか?
前もって感謝します。