2010-12-06 12 views
22

jQueryのテンプレートエンジンを使い始めました。これはこれまでのところかなりいいようです。しかし、どういうわけか外部ファイルからテンプレートを読み込むことが可能かどうかは疑問です。たくさんのテンプレートがあるとします。これはhtmlコードを混乱させ、キャッシュ可能でもなく、すべての要求にダウンロードする必要があります。外部ファイルからjQueryテンプレートをロードしますか?

私は外部ファイルにそれらをすべて定義し、ロードしてコンパイルしたテンプレートをlocalStorageに格納する方法があると考えていました。

誰も外部ファイルからロードする方法を知っていますか?

答えて

14

このテンプレートをajaxで読み込むことができます。

<script> 
    var movies = [ 
    { Name: "The Red Violin", ReleaseYear: "1998", Director: "François Girard" }, 
    { Name: "Eyes Wide Shut", ReleaseYear: "1999", Director: "Stanley Kubrick" }, 
    { Name: "The Inheritance", ReleaseYear: "1976", Director: "Mauro Bolognini" } 
    ]; 

    $.get("templates/movieTemplate.html", function(data, textStatus, XMLHttpRequest){ 
    var markup = data; //"<tr><td colspan='2'>${Name}</td><td>Released: ${ReleaseYear}</td><td>Director: ${Director}</td></tr>" 

    /* Compile markup string as a named template */ 
    $.template("movieTemplate", markup); 

    /* Render the named template */ 
    $.tmpl("movieTemplate", movies).appendTo("#movieList"); 
    }); 
</script> 

テンプレートを一度だけロードする場合は、ローカルストレージロジックまたはロードされたテンプレートの配列を追加できます。

+0

1にindexDBキャッシュとブロックを出現上のHTMLをレンダリングするAJAXのためのjQueryプラグインとしてlitleのlibを書きました。これにより、$ .tmpl()を後で繰り返し呼び出すことができます。フェッチまたはコンパイルする必要はありません。 – justis

+0

これは次のようになります:TypeError:$ .templateは関数ではありません – zygimantus

0

私は最近、これを支援するためのJavaScriptライブラリーを書いた:

https://www.github.com/stevenmhunt/tmpl.loader

あなたはjsRenderを追加したり、<link>タグを使用して、テンプレートファイルの他の種類と、彼らは自動的に登録することができます。

+0

リンクが壊れています。 :( – Luke

+0

申し訳ありませんが、私は年前にgithubの名前を変更しました。リンクは今修正されました。 –

1

私はレンダリングするために)(コンパイルおよび$ .tmplする)(.TEMPLATEを使用して例を含むため、ブラウザjQuery HTML Template Loader

関連する問題