4

ビューをリージョンにレンダリングするときに、バックボーン/マリオネットにラッピング コンテナ タグを自動的に追加しないように指示する方法はありますか?

たとえば、アイテムのリストを表示したいとします。私がやりたい方法は、1 つの複合ビューを次のように見せることです。

<ul>
</ul>

そして、次のような項目ビュー:

<li><%= title %></li>

自動生成された要素に使用されるタグを変更することで、同じ出力を簡単に取得できます. なんらかの理由でリストを表に変更したい場合、すべての HTML がテンプレートに含まれている場合は、2 つのテンプレート ファイルを変更するだけで済みます。もう 1 つの方法では、2 つのテンプレート ファイルと 2 つの JavaScript ファイルを変更する必要があります (変更を行うために変更する必要があるファイルが少なくなるため、エラーの可能性が低くなります)。私は、そのレベルの関心の分離が好きです。

4

1 に答える 1

0

Backbone も Marionette も、これに対するサポートを組み込んでいません。しかし、いくつかの調整でこの動作を実現できるかどうかは想像できます。

Backbone.Viewfromを_ensureElement構築するメソッドが呼び出され、 が提供されていない場合。eltagNameclassNameel

_ensureElement最初にテンプレートをレンダリングしてから、その最初のタグ名をビューの として使用するようにオーバーライドできますtagNameMarionette.Renderer.renderテンプレートの外側のタグを削除するには、オーバーライドする必要もあります。

このロジックを実現するためにオーバーライドするメソッドのより良い選択があるかもしれません。また、この動作を選択的にオンにするフラグをどこかに提供して、必要に応じて組み合わせて一致させることもお勧めします。これはデバッグにも役立ちます。

于 2012-09-11T00:57:40.153 に答える