我正在使用预编译模板有以下几个原因:
<script>
标签和硬编码更干净)基本上,我基于多个templates.js
文件通过handlebars command line utility生成template.handlebars
。接下来,我尝试使用以下循环将这些模板带入Ember:
for (var name in Handlebars.templates) {
var template = Handlebars.templates[name];
Ember.TEMPLATES[name] = template;
}
结果很奇怪:文本似乎已加载,但许多模板功能(例如{{outlet}}
)不起作用。我怀疑这是因为Handlebars和Ember-Handlebars不是一回事。
我想有两个选项(和问题):
UPDATE :根据答案,Ember.Handlebars与Handlebars不同,因此预编译不同。写了一个简单的脚本为Ember预编译:https://gist.github.com/3723927
答案 0 :(得分:2)
是的,普通的Handlebars编译器编译成不同于Ember.Handlebars的JavaScript,所以你不能使用Ember来消耗它的输出。
我不知道通过命令行运行Ember.Handlebars的方法,尽管原则上应该可以写一些东西。
要了解如何使用Ember.Handlebars进行预编译,请查看ember-rails的源代码 - 它支持预编译。