0

我试图从templates/about.handlebars.

我在 rails 视图中有插座设置:

%script{ type: 'text/x-handlebars'}
  <h1> My app</h1>
  {{ outlet }}
  ^-- outlet

about 路线如下所示:

Admin.Router.map ->
  @route 'about', path: '/'

about 模板是纯 html:

<h1>This is ABOUT!</h1>

什么似乎有效:

  • 我可以看到 Ember 调试消息,确认 ember 正在工作
  • 我安装了 ember chrome 扩展,它可以看到应用程序模板

但是,当我要求时Ember.TEMPLATES,我得到:

Object {application: function} 
application: function (context, options) { 
__proto__: Object

那里没有关于模板的信息。

挖掘编译后的 js 文件,我可以看到车把模板物理存在:

(function() {
  this.HandlebarsTemplates || (this.HandlebarsTemplates = {});
  this.HandlebarsTemplates["about"] = Handlebars.template(function (Handlebars,depth0,helpers,partials,data) {
  this.compilerInfo = [4,'>= 1.0.0'];
helpers = this.merge(helpers, Handlebars.helpers); data = data || {};



  return "\n<h1>This is ABOUT!</h1>\n\n";
  });
  return this.HandlebarsTemplates["about"];
}).call(this);

但我没有看到它被明确添加到 Ember.TEMPLATES 中。

更新 1:检查 ember-rails gem,我看到把手将仅匹配具有.raw.(hjs|...)mustache.(hjs|...)名称的文件?文档似乎没有谈到这一点。

即使我重命名了模板,它仍然没有显示,而且很奇怪,因为我在教程或 gem 文档中没有看到这样的模板名称。

4

1 回答 1

0

Ember 在 Ember.TEMPLATES 中查找预编译模板,而不是在 HandlebarsTemplates 中查找。

于 2013-11-03T16:08:43.003 回答