5

有什么方法可以预编译 Handlebars 模板,以便它了解 Ember.js 助手,如“action”、“view”等?

我问的原因是因为我需要将 Ember.js 与 Handlebars 的仅运行时版本一起使用(由于 Google Chrome 中的 CSP),而且 Ember.js 似乎目前并不完全支持这种情况: https: //github.com/emberjs/ember.js/issues/1303

4

1 回答 1

4

Ember.Handlebars.precompile您可以使用( ember-handlebars/lib/ext.js#L104 )预编译 Ember Handlebars 模板。

用于在浏览器外部(例如在节点中)进行预编译的基本策略是:

  • 加载handlebars.js
  • 加载 ember.js
  • 填充一些 Ember 期望的浏览器 API(这在 1.0 中不应该是必需的,但现在是必需的)。
  • template = Ember.Handlebars.precompile(string)
  • Ember.TEMPLATES[name] = Ember.Handlebars.template(template)

如果您拥有带有扩展名的资产,Rails的ember-railsgem 会为您执行此操作.handlebars

ember-railsgem 还维护一个 shim文件,您可以使用该.js文件在其他非浏览器环境中进行预编译(ember-precompiler.js)。

于 2012-09-09T03:17:26.203 回答