0

私は backbone.js を使用しており、開発中に多くの .js および .html テンプレート ファイル (モデルごとに 1 つ) があります。アプリを展開する前に、すべての .js を 1 つのファイルにクランチしていますが、うまく機能します。テンプレートに対してもこれを行うにはどうすればよいですか? いくつかのアイデアがありましたが、問題があります。

  • すべてのテンプレートをメイン ページの非表示の「div」タグの下に配置します。ただし、ブラウザがテンプレートをロードすると、テンプレートは「実行」されます (たとえば、画像は必要なくダウンロードされます)。
  • エンコードされたテンプレートを JavaScript 変数内に配置します。ただし、エンコードされた html は読み取れません。これは、クライアントのデバッグにとって重要です。
  • テンプレートを外部 xml ファイルに配置します。ただし、xmlパーサーは避けたいです。およびその他の非 xml 形式は、エンコードのために再び読み取れなくなります。
4

4 に答える 4

1

わかりました...以前は何も見つかりませんでしたが、質問を公開した直後に次のことを知りました。

<script type="text/template" id="user-template">
...
</script>
于 2012-07-28T17:36:00.210 に答える
1

テンプレートにはハンドルバーを使用することをお勧めします。

私がしていることは、テンプレートを 1 つの JavaScript ファイル (templates.js) にパックすることです。そのため、それらは DOM 上にはありません。テンプレートは本番環境では js 変数にコンパイルされますが、開発環境ではそのまま使用されるため、デバッグは簡単です。

これについてはブログ記事に詳しく書いています

于 2012-07-29T06:52:16.117 に答える
1

私のプロジェクトでは、次のようにこれを行います:

Backbone には Underscore があり、Underscore にはすでに非常にクールな最小限のテンプレート システムがあります。だから私はテンプレートを別々のファイルに書き、jQueryでそれらを取得します

    $.get('html_template.tpl', function(template) {
        $(body).html(_.template(template)(template_data));
    });

そのため、本当に必要な場合にのみユーザーにテンプレートをダウンロードさせます。

多分それは役立ちます。


アンダースコア テンプレート : http://documentcloud.github.com/underscore/#template

于 2012-07-30T07:12:36.347 に答える
0

<script type="text/template" id="">おそらくICanHaz.jsについて学んだばかりなら、次に試すことができるものか、Handlebars.jsかもしれません

于 2012-07-28T20:45:56.580 に答える