2013-05-08 133 views
0

我试图呈现一个视图动态地Ember.js灰烬无法找到模板

Resume.ItemView = Em.View.create({ 
    click: function(){ 
    var view = Em.View.create({ 
     templateName: 'my_exp'}); 
    view.append(); 
    }, 
}); 

我在/模板my_exp.hbs

,但得到

Uncaught Error: assertion failed: You specified the templateName my_exp for <Ember.View:ember261>, but it did not exist. 

有试图做到这一点的更好方法?谁能建议资源?

+0

如果你到控制台,输入'Ember.TEMPLATES',你看到你的模板集合中? – MilkyWayJoe 2013-05-08 22:45:08

+0

是: Ember.TEMPLATES; 对象{application:function,... my_exp:function ...} – 2013-05-08 22:49:04

+1

我的朋友...工作。谢谢 – 2013-05-09 02:40:18

回答

3

最近对Ember的更新删除了defaultContainer以查找模板。 对于手动创建视图的人来说,这造成了一些问题。

要达到您想要的效果,您需要使用createChildView

Resume.ItemView = Em.View.create({ 
    click: function(){ 
    var view = this.createChildView(Ember.View, { 
     templateName: 'my_exp' 
    }); 
    view.append(); 
    }, 
}); 

(见fiddle

+0

感谢您的回复。现在我得到 未捕获的错误:断言失败:您必须通过视图的实例或子类 – 2013-05-09 02:34:47

+0

哎呀,现在修复了,您需要传递一个视图类来实例化 – 2013-05-09 03:31:35