Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ember.js 如何使用Ember使用Handlebar命令行生成的模板?_Ember.js - Fatal编程技术网

Ember.js 如何使用Ember使用Handlebar命令行生成的模板?

Ember.js 如何使用Ember使用Handlebar命令行生成的模板?,ember.js,Ember.js,我使用预编译模板有几个原因: 性能(无需在运行时重新编译) 代码分离(比在JS中嵌入标记和硬编码更干净) 内容安全策略(此策略用于扩展) 基本上,我是基于几个template.handlebar文件,通过生成templates.js。接下来,我尝试通过以下循环将这些模板引入Ember: for (var name in Handlebars.templates) { var template = Handlebars.templates[name]; Ember.TEMPLATES[na

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

  • 性能(无需在运行时重新编译)
  • 代码分离(比在JS中嵌入标记和硬编码更干净)
  • 内容安全策略(此策略用于扩展)
  • 基本上,我是基于几个
    template.handlebar
    文件,通过生成
    templates.js
    。接下来,我尝试通过以下循环将这些模板引入Ember:

    for (var name in Handlebars.templates) {
      var template = Handlebars.templates[name];
      Ember.TEMPLATES[name] = template;
    }
    
    结果很奇怪:似乎加载了文本,但许多模板功能(例如,
    {{outlet}}
    )不起作用。我怀疑这是因为车把和余烬车把不是一回事

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

  • 预编译Ember友好模板(如何通过命令行执行此操作?)
  • 将车把模板正确导入Ember(如何?)

  • 更新:根据答案,余烬。车把与车把不同,因此预编译不同。为Ember编写了一个简单的预编译脚本:

    是的,普通Handlebars编译器编译为不同于Ember.Handlebars的JavaScript,因此不能使用Ember使用其输出

    我不知道如何通过命令行运行Ember.handlebar,尽管原则上应该可以编写一些东西

    要了解如何使用Ember.handlebar进行预编译,请查看的源代码-它支持预编译