给定data-template-name的匹配模板名称是什么

时间:2013-04-08 19:42:06

标签: ember.js gruntjs grunt-ember-templates

我正在使用grunt-ember-templates预编译我的模板。正如预期的那样,此工具将我的模板放在Ember.TEMPLATES数组中。我正在调整grunt-ember-templates的配置。为此,我想知道Ember.TEMPLATES数组中的预期键是什么。假设我有这个模板:

<script type="text/x-handlebars" data-template-name="phones/index">
    ....
</script>

目前我将此模板放在名为app/templates/phones_index.hbs的文件中,grunt-ember-templates将预编译的模板放在Ember.TEMPLATES["app/templates/phones_index"]中,但这是错误的。

data-template-name="phones/index"的预期关键是什么?

1 个答案:

答案 0 :(得分:4)

在您的示例中,Ember.TEMPLATES中的密钥应为“phones / index”。

您可以配置grunt-ember-templates以删除路径的第一部分,并将所有内容保留在app/templates/之后,假设您将模板放在文件app/templates/phones/index.hbs中,这将为您提供正确的密钥。使用此设置,app/templates/phones/index.hbs文件的密钥为Ember.TEMPLATES['phones/index'],与使用<script>的未编译data-template-name="phones/index"代码相同。

Gruntfile.js(与this项目中的Gruntfile.js相同):

ember_templates: {
  options: {
    templateName: function(sourceFile) {
      return sourceFile.replace(/app\/templates\//, '');
    }
  },
  'dependencies/compiled/templates.js': ["app/templates/**/*.hbs"]
},