レイアウトがありますが、すべての領域が不明であるため、事前にすべての領域を定義することはできません。
後で ItemView が作成され、ビューの ID を領域の名前として使用してレイアウトに新しい領域を作成したいので、次のように言えます。
layout.dynamicRegionName.show(newItemView);
しかし、ここには循環依存があります。
ビューをまだレンダリングしていないため、レイアウトの .addRegion() への呼び出しで使用される DOM 要素への参照を作成できません。
.show() を呼び出して動的に追加された領域を介して DOM ツリーにアタッチしたいため、レンダリングできません。
@DerickBailey github の Marionette.Layout ドキュメントでは、次の例にエラーがあると思います。layout.show(new MenuView());
しかし、技術的には、これはここで必要なものに近いものです。つまり、次のことができるようになります。
layout.addRegion(VAR_WITH_NEW_REGION_NAME, aViewInstance);
これにより、新しいリージョンがレイアウト レンダリングに追加され、その内部でビュー インスタンスが直接レンダリングされます。
これを達成するための他の明らかな方法がありませんか?それは既知の不足している機能ですか? 持っていない理由はありますか?
この前の Q:「領域をレイアウトに動的に追加/削除する」は知っていますが、それに対する明確な/明確な回答はありません。