2

这是这个问题的小提琴(在第 5 行添加/删除单斜杠并重新运行)

基本上,两种绑定方式(专有名词?)我的应用程序模板。我希望这两种方法都能奏效,但一种有效,一种无效。

作品

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(损坏)成功显示了 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 回答