是否有任何方法可以预编译Handlebars模板,使其了解Ember.js助手,如"action"、"view"等。?
我问这个问题的原因是,我需要将Ember.js与Handlebars的仅运行时构建一起使用(由于Google Chrome中的CSP),而Ember.js目前似乎并不完全支持这样的场景:https://github.com/emberjs/ember.js/issues/1303
您可以使用Ember.Handlebars.precompile
(Ember-handlebas/lib/ext.js#L104)预编译Ember-Handlebars模板。
在浏览器外(例如,在节点中)预编译使用的基本策略是:
- 装载车把.js
- 加载ember.js
- 去掉Ember期望的一些浏览器API(这在1.0中不应该是必要的,但在今天是必要的)
template = Ember.Handlebars.precompile(string)
Ember.TEMPLATES[name] = Ember.Handlebars.template(template)
如果您有一个扩展名为.handlebars
的资产,那么ember-rails
gemforRails就可以为您实现这一点。
ember-rails
-gem还维护了一个填充程序.js
文件,您可以使用该文件在其他非浏览器环境中进行预编译(ember-precompiler.js)。