0

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

我已将所有模板移动到一个handlebars文件夹中,并且它们编译到templates.js同一个文件夹中。

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

以下是我所有脚本的布局方式:

<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文件路径是正确的,所以这不是问题。但它总是返回错误说明:

断言失败:找不到“索引”模板或视图。

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

提前感谢您的帮助!

编辑: 这是我的 Gruntfile:

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

1 回答 1

1

把它们放在哪里并不重要。好像他们有错误的命名。

  1. 将模板放入templates
  2. 正确命名它们(application.hbs用于应用程序模板)
  3. 使用这个 grunt 命令

ember_handlebars: { options: { processName: function(name) { return name.replace(/(templates\/|\.hbs)/g, ''); } }, files: { "templates.js": "templates/**/*.hbs", }

于 2014-03-05T16:44:24.117 回答