1

テンプレートに関する Ember ガイドに従って、次のことを行います。

App.PostsView = Ember.View.extend({
    template: Ember.Handlebars.compile('I am the template')
});

しかし、何もレンダリングされません。templateNameビューを使用すると、次のようレンダリングされます。

//html

<script type='text/x-handlebars' data-template-name='posts-template'>
    <h1>I am the template</h1>
</script>

//js

App.PostsView = Ember.View.extend({
    templateName: 'posts-template'
});

templateガイドに記載されているように、関数を使用してテンプレートを機能させるにはどうすればよいですか?

編集:

私はこれらに出くわしました:

emberjs テンプレートのコンパイルが rc1 で機能しない

ember.js RC1 でコンパイルされたハンドルバーを持つビューを使用して指定するにはどうすればよいですか

したがって、これは重複しているように見えるかもしれません。ただし、これは最初に Ember ガイドで指定されていない追加の作業を使用しているように見え、2 番目は私が行っていることですが、機能していません。

4

2 に答える 2

2

OK、これは機能します:

Ember.TEMPLATES['posts-template'] = Ember.Handlebars.compile('I am the template');
App.PostsView = Ember.View.extend({
    templateName: 'posts-template'
});

私たちで起こっていたのは、これを使用してコンパイル済みのテンプレートを返すという事実ではなく、事前にコンパイルされたテンプレートが追加されていたことです。Handlebars.templatesEmber.TEMPLATES

App.PostsView = Ember.View.extend({
    template: Handlebars.templates['posts-template']
});

templateそのため、関数に干渉するのを控え、常に を使用しtemplateNameてその名前を検索する必要があるように思われますEmber.TEMPLATES

うまくいけば、これは誰かが時間を節約するのに役立ちます:)

于 2013-03-28T09:34:14.347 に答える
1

実際のコンテンツtemplateNameとともに期待されるものを指定することもできます。template

App.PostsView = Ember.View.extend({
  templateName: 'posts',
  template: Ember.Handlebars.compile('I am the template')
});

JSBin の例

于 2013-03-28T14:20:19.517 に答える