3

バックボーンアプリを提供する2つの異なるHTMLページがあります。これまで、すべてのjsテンプレートをそれぞれのHTMLファイル内に配置してきました。

今、私は少しリファクタリングしていて、ファイル間でいくつかのバックボーンビューを共有したいと思います。jsテンプレートが見つからないビューを読み込むと、アプリ全体がエラーになります。これら2つをマージする適切な方法は、たとえばEJSを使用して外部のjsテンプレートを作成し、ファイルごとに1つ<script type='text/template'>のテンプレートを作成することですが、テンプレートHTMLファイルを埋め込んで共有する巨大なHTMLファイルを1つだけ作成したいと思います。私の2ページの間。これは可能ですか?AJAXを使用して外部jsテンプレートを取得し、それらをヘッドに書き込んでみましたが、バックボーンビューはまだそれらを見つけることができません。

他の誰かがその中に多くのjavascriptテンプレートを含むファイルを持つことを選択しますか?また、ejsを使用すると、管理できない数のファイルが開いていることがわかりました。どんな助けでも大歓迎です。

4

3 に答える 3

2

私は余分なjavascript/coffeescriptファイルを使用し、アンダースコアのテンプレートを使用してすべてを処理します。このようにして、テンプレートを含めて、必要な数の(または多くの)ファイルに入れることができます。

于 2011-12-21T20:09:57.767 に答える
1

現在のプロジェクトのすべてのテンプレートに単一のファイルを使用していますが、かなりうまく機能しています。

これはAsp.Netサイトなので、テンプレートファイルをユーザーコントロールにして、Backboneを使用する任意のページに簡単に含めることができるようにしました。

于 2011-12-21T18:59:17.567 に答える
0

AJAXを介してすべてのテンプレートをフェッチしている場合は、それらをヘッドに書き込む必要がない場合があります。

テンプレートは、JSONオブジェクトとしてクライアントに送信できます。次に例を示します。

{"about":"<p>About</p>...","gallery":"<p>Gallery</p>...","contact":"<p>Contact</p>..."}

テンプルをフェッチした後、それらをテンプレート変数としてオブジェクト(またはロケールストレージ)内に保存できます。その後、次の操作を実行できます。

var tempStr = templates['about'],
    template = new EJS({element:{value: tempStr, id: 'about'}}),
    content = template.render();
于 2012-11-06T19:09:13.890 に答える