バックボーンJSビューは、構成可能なタグ、ID、およびクラスを使用して、常にDOMノードを作成するという点で非常に「便利」です。これは非常に素晴らしく、順応性がありますが、残念な状況が発生することがわかりました。ビューによって作成されたDOMノードは非表示のテンプレートです。
これは、フロントエンドとバックエンドの間でMustacheテンプレートを共有している現在のプロジェクトで明らかになりました。バックボーンを使用して、次のようなDOMが必要な場合:
<section class="note">
<textarea>
...
</textarea>
<input type="button" class="save-button" value="Save">
<input type="button" class="cancel-button" value="Cancel">
</section>
最終的に次のようなテンプレートを作成します。
<textarea>
{{& content}}
</textarea>
<input type="button" class="save-button" value="Save">
<input type="button" class="cancel-button" value="Cancel">
ただし、これで、テンプレートはバックボーンビューのシークレットルートノードテンプレートに関連付けられます。これは、サーバー側で複製する必要があります。DRYカプセル化についてはこれだけです!
setElement()
レンダリング時にレンダリングされたテンプレートを使用する場合を除いて、これに対処するためのすぐに明白な方法はわかりませんが、これにより、DOMで新しくレンダリングされたサブツリーを毎回置き換える必要があるなど、他の問題が発生しrender()
ます。
この問題にどのように対処しましたか?