Ember重定向并正确显示模板

时间:2014-04-16 17:32:32

标签: ember.js gruntjs handlebars.js ember-router

所以我决定让Grunt尝试为我预编译我的模板。我无法设置所有内容。这是我在Gruntfile.js中的内容:

grunt.loadNpmTasks('grunt-ember-templates');

  emberTemplates: {
  compile: {
      options: {
        templateBasePath: "templates/",
        templateName: function(name) {
          return name.replace('_','/');
        }
      },
      files: {
        "templates/templates.js": ["templates/*.hbs"]
      }
    }
  }

  watch: {
    emberTemplates: {
      files: 'templates/*.hbs',
      tasks: ['emberTemplates', 'livereload']
    },
  }

我相信这很好,因为我引用了该文档。我的package.json有dev依赖项。但是,当我尝试执行grunt --help时,不会显示任何可用的任务。

2 个答案:

答案 0 :(得分:0)

以下是需要注意的几点:

  • 模板需要加载到Ember.TEMPLATES而不是Handlebars.Templates。
  • 您应该使用Ember.Handlebars.compile而不是Handlebars.compile。你认为它只是一个包装器,但它可能会通过额外的余烬辅助器和所有它来做更多。

我还回答了如何使用多个文件进行模板编译。以下链接可能很有用 ember hbs templates as separate files

答案 1 :(得分:0)

因此,事实证明我没有意识到将代码放入Gruntfile.js的顺序。我应该

  1. 将emberTemplates放在grunt.initConfig()
  2. 加载NPMtask然后
  3. 注册任务