2

この質問のフィドルは次のとおりです(5行目の単一のスラッシュを追加/削除して再実行します)

基本的に、アプリケーション テンプレートをバインドする 2 つの方法 (適切な用語? )。両方の方法が機能すると思いますが、一方は機能し、もう一方は機能しません。

作品

this.register( 'view:application',     Ember.View.extend());
this.register( 'template:application', Ember.Handlebars.compile( 'Hello, world!' ));

壊れた

this.register( 'view:application', Ember.View.extend({
  'template': Ember.Handlebars.compile( 'Hello, world!' )
}));

これは、アプリケーション レベルだけでなく、すべてのリソース/ルートに当てはまるようです。

では、なぜ 2 番目の方法が機能しないのでしょうか。

編集:これは、上記の方法2(壊れた)を使用してHandlebarsビューヘルパーを正常に表示する別のフィドルです。ルートビューのみの問題のようです。

編集 2 : c4pのおかげで、Github の問題はここにあります

4

1 に答える 1

1

この関連する質問を見てください。

簡単な要約:

  • Ember は、グローバル変数でテンプレートを見つけることを想定していますEmber.TEMPLATES。Ember.Handlebars.compile を使用すると、コンパイルされたテンプレートがグローバル変数に入れられますHandlebars.templates
  • この方法でコンパイルを使用する場合は、次のようにする必要があります。

Ember.TEMPLATES['posts-template'] = Ember.Handlebars.compile('I am the template');
App.PostsView = Ember.View.extend({
    templateName: 'posts-template'
});
于 2013-03-28T10:20:28.907 に答える