我正在尝试使用guard-handlebars来预编译我的手柄模板(以避免在我的index.html中使用它们,这感觉有点不太理想......)。预编译效果很好,Ember接受了这样一个事实:当我将模板注入Ember.TEMPLATES时,模板会接受:
Ember.TEMPLATES['application'] = Handlebars.templates['application']
然而,它不起作用。我得到这样的例外:
Could not find property 'outlet'
...在Handlebars中的helperMissing方法。似乎Ember使用默认Handlebars的一些猴子修补程序,据说增加了对{{outlet}}助手和其他人的支持。但我的模板似乎没有使用这些插座。你是如何解决这个问题的?
我正在使用通过NPM安装的把手编译器来编译模板。
答案 0 :(得分:0)
找到了一个重复的问题,其中包含建议的解决方案/解决方法:How can I consume handlebars command-line generated templates with Ember?
(简短摘要:是的,使用handlebars
命令行程序进行预编译并不会立即生效,完全是因为我在原始问题中建议的原因)
答案 1 :(得分:0)
答案 2 :(得分:0)
guard-handlebars
宝石已经过时了,它不适用于使用ember。
今天有几个选择。
例如,要使用理发器编译一个ember模板,请尝试以下方法:
compiled_template = Barber::Ember::FilePrecompiler.call(IO.read(file))
# now ruby variable compiled_template is a string like: "Ember.Handlebars.template(function(...));"
result = "Ember.TEMPLATES['#{name}'] = '#{compiled_template}';"
# now result is a JS string that sets Ember.TEMPLATES[name] to precompiled handlebars
当新版本的ember出现时,它可能需要几天的时间才能通过生态系统。当发生这种情况时,您可能会发现ember-source gem很有用。有关更多详细信息,请参阅Alex的博文: