Ember.js RC1 - 指定“模板”时不显示视图

时间:2013-03-28 07:00:37

标签: ember.js

按照模板上的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 template compile doesn't work in rc1

How do I specify using a view with a compiled handlebar in ember.js RC1

所以这个可能看起来像是重复的。然而,这首先似乎使用了一些未在Ember指南中指定的额外工作,第二个是我正在做的但是它无效。

2 个答案:

答案 0 :(得分:2)

好的,这有效:

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

我们发生的事情是我们的预编译模板被添加到Handlebars.templates而不是Ember.TEMPLATES以及我们使用返回已编译模板的事实这个,例如:

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

所以似乎应该避免干扰template函数,而是总是使用templateNameEmber.TEMPLATES将在{{1}中寻找该名称}。

希望这有助于节省一些时间:)

答案 1 :(得分:1)

您还可以指定预期的templateName以及实际的template内容:

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

JSBin example