2

サブビュー/子ビューが既にDOMにあることを知らせる最良の方法は何ですか?

ビューの次の階層があるとします。

MainView
   SubView
      ChildView

たとえば、ここでMainViewはすでに DOM にあります。次に、renderプロセスの一部としてMainView作成され、次に作成SubViewされますChildView

その結果、レンダリングChildViewが完了するまで DOM に存在しません。MainViewそして、いつ挿入されて表示されるかを (イベントまたはハンドラーを介して) 知る必要があります。

最も簡単な答えは、MainViewレンダリングが完了したときに何らかのイベントをトリガーすることです。それが私がそれを必要とする唯一のケースであるなら、それは大丈夫でしょう. しかし、多くの場所があり、一般的に突然、サブビューが親に何をすべきかを指示します。おそらく良くありません。

更新:これはどのような場合に必要ですか? 要素がDOMにあることを期待するウィジェットを使用している場合(高さを取得するなど)。例: アコーディオン ウィジェット、jqGrid。そのため、コンテナーが既に DOM にある場合に、それらを初期化する正しい時間です。

4

1 に答える 1

-1

あなたのユースケースが何であるかはわかりませんが、Childview内でDOM要素を見つけて操作することを想定しています。この場合、それが DOM にあるかどうかは問題ではありません。

私が通常行うことは、要素への参照を取得することです-$el

次に、サブ要素を見つけます

$target = $el.find('.target')

これには、ChildView 内のクラスまたは ID のみを取得できるという追加の利点があり、ビューの適切な管理が保証されます。

于 2013-03-17T23:02:22.513 に答える