7

Handlebars テンプレートをプリコンパイルしたいのですが、これが開発モードでどのように機能するかわかりません。

ハンドルバー テンプレート ファイルへの変更を常に監視するためにGuardのようなバックグラウンド プロセスを実行するのは一般的な方法ですか?

テンプレートを取り込むために RequireJS を使用しています。例えば:

define(['jquery', 'handlebars', 'text!templates/my_template'], function($, Handlebars, myTemplate) {

  // ...

  var data = {"some": "data", "some_more": "data"};
  var templateFn = Handlebars.compile(myTemplate);
  $('#target').append(templateFn(data));

  // ...

});

したがって、テンプレートがプリコンパイルされたら、次のようにすることを理解しています。

define(['jquery', 'handlebars'], function($, Handlebars) {

  // ...

  var data = {"some": "data", "some_more": "data"};
  var template = Handlebars.templates['my_template'];
  $('#target').append(template(data));

  // ...

});

2 番目のコード スニペットの について、次の点に注意してください。

  1. RequireJS モジュールはテンプレートを取り込まなくなりました。
  2. Handlebars.compile() は使用されなくなりました。

通常、ファイル システム レベルの変更がテンプレート ファイルに発生するたびに、テンプレートのコンパイルを維持するために Guard を実行しますか?

基本的に私の質問は、開発者がこれを行う意図はありますか?

if (development) {
  compile templates
}
else {
  use precompiled templates
}

私も Rails を使っているので、sass-rails のような黒魔術があるのか​​もしれません。

4

3 に答える 3

11

Require.js ハンドルバー プラグイン ( https://github.com/SlexAxton/require-handlebars-plugin ) または epeli の requirejs-hbs ( https://github.com/epeli/requirejs-hbs ) をご覧になりましたか?

于 2013-08-15T01:18:48.283 に答える