有没有办法预编译Handlebars模板,以便它能够了解Ember.js帮助器,如“action”,“view”等?
我问的原因是因为我需要将Ember.js用于Handlebars的仅运行时构建(由于Google Chrome中的CSP),而且似乎Ember.js并不完全支持当前这样的场景: https://github.com/emberjs/ember.js/issues/1303
答案 0 :(得分:4)
您可以使用Ember.Handlebars.precompile
(ember-handlebars/lib/ext.js#L104)预编译Ember Handlebars模板。
在浏览器之外(例如在节点中)用于预编译的基本策略是:
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)中进行预编译。