10

javascript でコンパイルするときに外部の口ひげテンプレートをロードし、コーヒー ファイルを乱雑にしないように、Coffeescript に関数を含めると便利です。

実際には、実行時に .mustache ファイルをロードできますが、これらのファイルを ajax リクエストで呼び出す必要があり、パフォーマンスが低下します。

いくつかの静的口ひげテンプレートをプリコンパイルし、それらを生成された JavaScript 関数に含めて、1 つのファイルにステッチおよび圧縮できるようにしたいと考えています。

そのためのプロジェクトまたはスクリプトはありますか?

4

6 に答える 6

7

私はあなたのためのこの解決策、口ひげと他のテンプレートエンジンのためのjavascriptテンプレートプリコンパイラーと思いますhttps://github.com/kupriyanenko/jsttojs

たとえば、コマンドラインで使用します

jsttojs templates compiled/templates/index.js --ext mustache --watch

またはgrunt、grunt-jsttojsのソリューションを使用します

于 2012-11-03T13:39:45.973 に答える
2

私は似たようなことをすることを見ています。これはまだ試していませんが、Node.js とMu (Node.js用の Mustache ビルド) を使用してこれを行うことができるようです。疑似 JS コード...

var compiledTemplate = Mu.compile("myTemplateFile.html")
fs.writeFile("myCompiledTemplate.js", compiledTemplate.toString());
于 2011-11-11T13:18:18.533 に答える
2

まず、次のようなものを使用できます。

<script type="text/x-mustache" id="tid...">
  ... mustache template ...
</script>

テンプレートをコード内の文字列としてではなく、専用のスクリプト ブロックに含めるには。 getElementByID()+innerHtml()は、使用できるソースを提供します。

一般的な口ひげについて - 厳密に言えば、それをコンパイルすることはできません。テンプレートは、テンプレートを「インスタンス化」するたびに解釈されます。

それらをコンパイルする必要がある場合は、私の Kite エンジンの使用を検討してください: http://code.google.com/p/kite/またはその他のコンパイル可能なテンプレート: http://jsperf.com/dom-vs-innerhtml-based -テンプレート/99

于 2011-09-07T23:32:58.083 に答える
2

間違いなく、これは私が働いている場所で行っていることです。すべてのテンプレートは 1 つの html ファイルにまとめられ、ビルド時に dom に挿入されます。各テンプレートはタイプ不明のスクリプト タグに保存されるため、ブラウザはそれを無視します。次に、セレクターを使用してそれらを参照できます。

<script type="unknown" id="id_of_template">
  <ul>
  {{#words}}
    <li>{{.}}</li>
  {{/words}}
  </ul>
</script>

render = (template) ->
  view =
    words: [ 'hello', 'there' ]
  template = $('#' + template).html()
  html = Mustache.to_html template, view

John Resig には、この手法に関する優れた記事がありますhttp://ejohn.org/blog/javascript-micro-templating/

于 2011-09-07T23:37:28.013 に答える
1

Twitter のライブラリHogan.jsがその役割を果たします。

于 2013-10-29T14:26:56.220 に答える
-1

役立つ場合は、 Mustache.to_html() を使用して、ソースに直接含まれるテンプレート文字列をレンダリングできます。

于 2011-09-07T23:15:37.610 に答える