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|...)ドキュメントはこれについて話していないようです。

テンプレートの名前を変更しても、チュートリアルや宝石のドキュメントでそのようなテンプレート名を見たことがないので、それはまだ表示されず、夕食は奇妙です。

4

1 に答える 1

0

Ember は、HandlebarsTemplates ではなく、Ember.TEMPLATES でコンパイル済みのテンプレートを探します。

于 2013-11-03T16:08:43.003 に答える