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

时间:2012-08-21 12:05:02

标签: ember.js handlebars.js

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

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

1 个答案:

答案 0 :(得分:4)

您可以使用Ember.Handlebars.precompileember-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)

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

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