线生成的模板与Ember?

我使用预编译模板有几个原因:

  • 性能(无需在运行时重新编译)
  • 代码分离(比在JS中嵌入<script>标记和硬编码更清晰)
  • 内容安全策略(这是一个扩展)。
  • 基本上,我通过基于几个template.handlebars文件的handlebars命令行实用程序生成templates.js 。 接下来,我尝试使用以下循环将这些模板放入Ember中:

    for (var name in Handlebars.templates) {
      var template = Handlebars.templates[name];
      Ember.TEMPLATES[name] = template;
    }
    

    结果很奇怪:文本似乎已加载,但许多模板功能(例如{{outlet}} )不起作用。 我怀疑这是因为把手和灰烬把手不是一回事。

    我想有两种选择(和问题):

  • 预编译兼容Ember的模板(我怎样才能通过命令行来做到这一点?)
  • 正确地将Handlebars模板导入Ember(如何?)
  • 更新 :根据答案,Ember.Handlebars与Handlebars不同,所以预编译是不同的。 编写了一个简单的脚本来预编译Ember:https://gist.github.com/3723927


    是的,简单的Handlebars编译器编译为不同于Ember.Handlebars的JavaScript,因此您无法使用Ember使用它的输出。

    我不知道通过命令行运行Ember.Handlebars的方法,但原则上可以写一些东西。

    要了解如何预编译Ember.Handlebars,请查看ember-rails的源代码 - 它支持预编译。

    链接地址: http://www.djcxy.com/p/73453.html

    上一篇: line generated templates with Ember?

    下一篇: Emberjs Templating from file?