Templates 如何使用Ember.handlebar.compile()在类定义中声明Ember模板?
在最新的ember主版本中,我尝试声明一个类似于以下内容的模板:Templates 如何使用Ember.handlebar.compile()在类定义中声明Ember模板?,templates,view,ember.js,ember-router,Templates,View,Ember.js,Ember Router,在最新的ember主版本中,我尝试声明一个类似于以下内容的模板: App.IndexView = Ember.View.extend({ template: Ember.Handlebars.compile('Index template in code') }); …但它不起作用。使用相同的代码并使用templateName属性在HTML中引用模板可以正常工作。有什么想法吗 下面是一个JSFIDLE,其中包含周围的代码和HTML: 可能是一个bug,如果您尝试设置defaultTempl
App.IndexView = Ember.View.extend({
template: Ember.Handlebars.compile('Index template in code')
});
…但它不起作用。使用相同的代码并使用templateName
属性在HTML中引用模板可以正常工作。有什么想法吗
下面是一个JSFIDLE,其中包含周围的代码和HTML:
可能是一个bug,如果您尝试设置defaultTemplate而不是template,它将起作用。你也许应该提出一个问题
App.IndexView = Ember.View.extend({
defaultTemplate: Ember.Handlebars.compile('Index template in code')
});
供参考
对于以后可能定义了模板的视图类(例如
另一个调用中的{{view}
把手助手调用的块部分
模板或子类中),您可以提供defaultTemplate
属性设置为编译模板函数。如果模板不可用
稍后为视图实例提供了defaultTemplate
值
将用于:
将
templateName:'index'
添加到App.IndexView
。看起来路由器需要/想要一个名为index
的模板,而你在JSFIDLE中使用它的方式,路由器无法找到一个
AView = Ember.View.extend({
defaultTemplate: Ember.Handlebars.compile('I was the default'),
template: null,
templateName: null });
App.IndexView = Ember.View.extend({
template: Ember.Handlebars.compile('Index template in code'),
templateName: 'index'
});