Ember.TEMPLATES is empty (ember-cli-htmlbars)

Ember.TEMPLATES is empty (ember-cli-htmlbars)

本文关键字:ember-cli-htmlbars empty TEMPLATES is Ember      更新时间:2024-05-05

我们目前使用的是ember-cli 1.10.0,它与ember-cli-htmlbars 0.7.4一起开箱即用。

我们的应用程序目录是ember-cli开箱即用设置的。app > templates中有一个application.hbs文件,我们添加了一个目录app > templates > application,在那里我们可以加载application.hbs的所有部分。其中一个部分是CCD_ 8。

我们不断遇到错误Uncaught Error: Assertion Failed: Unable to find partial with name "application/google_analytics",控制台中的Ember.TEMPLATES为空。当我们故意把_google_analytics.hbs搞砸时,ember server会抛出一个错误并无法编译,所以所有的模板都在编译器中运行,但Ember无法找到它们。

这是我们的package.json文件:

{
  "name": "app",
  "version": "0.0.0",
  "description": "Small description for app goes here",
  "private": true,
  "directories": {
    "doc": "doc",
    "test": "tests"
  },
  "scripts": {
    "start": "ember server",
    "build": "ember build",
    "test": "ember test"
  },
  "repository": "",
  "engines": {
    "node": ">= 0.10.0"
  },
  "author": "",
  "license": "MIT",
  "devDependencies": {
    "broccoli-asset-rev": "^2.0.0",
    "ember-cli": "0.2.0-beta.1",
    "ember-cli-app-version": "0.3.1",
    "ember-cli-babel": "^4.0.0",
    "ember-cli-dependency-checker": "0.0.7",
    "ember-cli-dotenv": "^0.4.0",
    "ember-cli-htmlbars": "0.7.4",
    "ember-cli-ic-ajax": "0.1.1",
    "ember-cli-inject-live-reload": "^1.3.0",
    "ember-cli-qunit": "0.3.8",
    "ember-cli-simple-auth": "^0.7.3",
    "ember-cli-uglify": "1.0.1",
    "ember-data": "1.0.0-beta.15",
    "ember-export-application-global": "^1.0.2",
    "express": "^4.8.5",
    "glob": "^4.0.5"
  }
}

这是我们的bower.json文件:

{
  "name": "app",
  "dependencies": {
    "jquery": "^1.11.1",
    "ember": "1.10.0",
    "ember-data": "1.0.0-beta.15",
    "ember-resolver": "~0.1.11",
    "loader.js": "ember-cli/loader.js#1.0.1",
    "ember-cli-shims": "ember-cli/ember-cli-shims#0.0.3",
    "ember-cli-test-loader": "ember-cli-test-loader#0.1.3",
    "ember-load-initializers": "ember-cli/ember-load-initializers#0.0.2",
    "ember-qunit": "0.2.8",
    "ember-qunit-notifications": "0.0.7",
    "qunit": "~1.17.1",
    "ember-simple-auth": "~0.7.3",
    "bootstrap": "~3.3.2",
    "normalize.css": "~3.0.2"
  },
  "devDependencies": {
    "dynatable": "~0.3.1",
    "bootstrap-datepicker": "~1.3.1",
    "hopscotch": "~0.2.3",
    "jquery-dateFormat": "~1.0.2"
  }
}

这是我们的Brocfile:

/* global require, module */
var EmberApp = require('ember-cli/lib/broccoli/ember-app');
var app = new EmberApp({
  dotEnv: {
    clientAllowedKeys: ['SOME_KEY', 'SOME_OTHER_KEY']
  }
});
module.exports = app.toTree();

我们甚至搞砸了environments.js,打开了html-bars功能,就像这样:

EmberENV: {
  FEATURES: {
    'ember-htmlbars': true
    // Here you can enable experimental features on an ember canary build
    // e.g. 'with-controller': true
  }
},

但这并没有奏效,因为我们没有使用金丝雀式的Ember。我们在其他任何地方都没有看到这个问题的记录,所以看起来我们显然缺少了一些东西。如有任何帮助,我们将不胜感激!

删除前导下划线(_)。

根据Ember CLI文档,正确的模板文件名应该是app/templates/文件夹中的google_analytics.hbs

{{partial "google_analytics"}}

将参考templates/google_analytics.hbs

Ember.TEMPLATES为空,因为CLI对所有内容都使用模块,包括模板。模板存储为前缀为application_name/templates/的模块。由于这与正常约定不同,CLI使用了一个自定义解析器,它可以让Ember在此位置查找模板。如果你检查你的源代码,你会发现你的所有模板都将在遵循这个约定的模块中。