1

我正在尝试使用guard-handlebars来预编译我的handlebars 模板(以避免将它们全部放在我的index.html 中,这感觉不太理想......)。预编译效果很好,Ember 接受了模板在我将其注入 Ember.TEMPLATES 时接受的事实,如下所示:

Ember.TEMPLATES['application'] = Handlebars.templates['application']

但是,它不起作用。我得到一个这样的例外:

Could not find property 'outlet'

...在 Handlebars helperMissing 方法中。似乎 Ember 使用了一些默认 Handlebars 东西的猴子补丁,据说添加了对 {{outlet}} 助手和其他的支持。但我的模板似乎没有使用这些插座。你如何解决这个问题?

我正在使用通过 NPM 安装的车把编译器来编译模板。

4

3 回答 3

0

适合你的插件

(这是一个示例集成:https ://github.com/trek/ember-todos-with-build-tools-tests-and-other-modern-conveniences/blob/master/Gruntfile.js )

于 2013-04-01T17:41:53.050 回答
0

发现一个带有建议解决方案/解决方法的重复问题:如何使用 Ember 使用车把命令行生成的模板?

(简短的总结:是的,使用handlebars命令行程序进行预编译不能立即工作,正是因为我在原始问题中建议的原因)

于 2013-04-01T16:57:02.617 回答
0

guard-handlebarsgem 已经过时了,它不是为与 ember 一起工作而设计的。

今天有几个选择。

例如,要使用 barber 编译 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 的博客文章:

http://alexmatchneer.com/blog/2013/02/27/gemifying-ember-dot-js-slash-handlebars-dot-js-slash-etc-dot-js/

于 2013-04-01T20:23:40.503 回答