我在哪里将我的Grunt编译的Ember.js模板放在我的HTML文件中?

时间:2014-03-05 15:20:08

标签: ember.js express handlebars.js grunt-ember-templates

我正在开发一个简单的Ember.js和Express应用程序,到目前为止我的所有模板都在我的index.html文件中。这是我第一次将Grunt用于更少的预编译模板。 (我使用Grunt-Ember-Handlebars来处理编译)

我已将所有模板移到handlebars文件夹中,然后在同一文件夹中编译成templates.js

我的问题是:我在哪里可以在HTML文件中包含链接到templates.js的脚本标记?

以下是我的所有文章的布局:

<script src="../js/jquery.js"></script>    
  <script src="../js/libs/handlebars-1.1.2.js"></script>
  <script src="../js/libs/ember-1.3.0.js"></script>
    <script src="http://builds.emberjs.com/beta/ember-data.js"></script>

    <!-- APP  -->
    <script src="templates.js" type="text/javascript"></script>       
    <script src="../js/app.js"></script>
      <script src='../js/router.js'></script>
      <script src='../js/controllers/controllers.js'></script>

我的templates.js文件的路径是正确的,所以这不是问题。但它总是返回错误说明:

  

断言失败:无法找到&#34;索引&#34;模板或视图。

我知道的唯一文件我需要在ember.js文件后包含它。除此之外,如果我在我的应用程序中的任何文件之前或之前包含它,它在错误输出方面没有区别。

提前感谢您的帮助!

修改 这是我的Gruntfile:

grunt.initConfig({
  ember_handlebars: {
    compile: {
      options: {
        namespace: "emberApp.TEMPLATES"
      },
      files: {
        "views/templates.js" : "handlebars/*.hbs"
      }
    }
  }
});

1 个答案:

答案 0 :(得分:1)

把它们放在哪里都没关系。好像他们的命名错误。

  1. 将模板放入templates
  2. 正确命名(应用程序模板的application.hbs
  3. 使用此grunt命令
  4. ember_handlebars: { options: { processName: function(name) { return name.replace(/(templates\/|\.hbs)/g, ''); } }, files: { "templates.js": "templates/**/*.hbs", }