Ember.js助手和Handlebars.js(仅限运行时构建)

s.e*_*ich 5 handlebars.js ember.js

有没有办法预编译Handlebars模板,以便它能够了解Ember.js帮助器,如"action","view"等?

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

Yeh*_*atz 4

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

\n\n

在浏览器\xc2\xa0(例如在节点中)之外进行预编译的基本策略是:

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

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

\n\n

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

\n