2011-12-21 6 views
3

私はバックボーンアプリを提供する2つの異なるHTMLページを持っています。これまで、私はそれぞれのHTMLファイルの中にすべてのjsテンプレートを入れました。backbone.jsを含む多くのJavaScriptテンプレートに1つの大きな外部ファイルを使用しますか?

私は少しリファクタリングしており、ファイル間でいくつかのバックボーン・ビューを共有したいと考えています。 jsテンプレートが見つからないビューを読み込むと、アプリケーション全体がエラーになります。私は、これらの2つをマージする適切な方法は、EJSを使って外部のjsテンプレートを作成することですが、ファイルごとに1つのテンプレートを持っていますが、埋め込まれた1つの巨大なHTMLファイルを持っていて、私の2ページの間にファイル。これは可能ですか?私はAJAXで外部のjsテンプレートを取得し、それらを頭に書き込もうとしましたが、バックボーン・ビューはまだそれらを見つけることができません。

他に誰かが多数のJavaScriptテンプレートを含むファイルを持っていますか?また、ejを使用すると、管理不能な数のファイルが開いていることがわかります。どんな助けでも大歓迎です。

答えて

2

私は余分なjavascript/coffeescriptファイルを使用し、すべてを世話するためにunderscore's templatingを使用します。この方法で、テンプレートを含めて、必要な数のファイルにまとめることができます。

+0

どのようなテンプレートを使用したいのですか?私は現在、HTML形式でそれらのすべてを分離しています。

1

現在のプロジェクトのすべてのテンプレートに1つのファイルが使用されていますが、うまく機能しています。

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

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(); 
関連する問題