在我的一条路线renderTemplate
方法中,我尝试使用this.render
渲染不同的模板:
App.IndexRoute = Ember.Route.extend({
renderTemplate: function() {
this.render( 'dashboard', {
into: 'admin'
});
}
});
但浏览器中的应用程序为空,控制台显示以下内容:
断言失败:您试图渲染到' admin'但事实并非如此 结果
在出现此错误消息后,我认为" admin"模板可能根本不存在,但它就在那里。两个"仪表板"和#34; admin"模板已加载。最奇怪的事情是:我能够使用this.render( 'dashboard' )
和this.render( 'admin' )
并且它们都可以正常工作。
我做错了什么?我甚至在" admin"中添加了{{outlet}}
标记。模板。
答案 0 :(得分:0)
如果要渲染到admin
,则必须在模板中使用命名的outled(与您编写的路径文件renderTemplate
相关联)。因此,在模板中使用:
{{outlet 'admin'}}
我现在不确定该怎么做。只是为了澄清:" admin"是 包含{{outlet}}的hbs模板。进入这个插座标签, 我想加载' dashboard.hbs'。之后,我想输出 整件事。我需要哪个文件
我假设您想要从另一个无关联的路线渲染这两个模板。在这种情况下,您可以将{{partial 'dashboard'}}
添加到admin.hbs
,并在this.render('admin')
中仅使用IndexRoute
。
在IndexController
内指定partialName: 'dashboard'
并在代码中动态更改,并将{{partial 'dashboard'}}
替换为{{partial partialName}}
。它应该动态工作,您可以将dashboard
换成另一个模板。