我正在尝试在我的索引页面中再渲染三个outlet
,一切正常,但是一旦我设置了至少一个插座,正常行为就会中断。更清楚的是我正在做的事情
我的IndexRoute
路线
renderTemplate: function() {
this._super();
this.render('header', { into: 'index', outlet: 'header' });
this.render('sidebar', { into: 'index', outlet: 'sidebar' });
this.render('right_side', { into: 'index', outlet: 'right_side' });
}
现在我的路由已映射,因此index
是一个资源,并包含其中的所有其他路由。我的视图包含所有设置为渲染的outlet
和一个未命名的插座,这会导致出现问题。
如果我没有明确指出要渲染的内容以及IndexRoute
中的位置,那么一切正常,我的模板在我的未命名插座中呈现,链接工作正常,未命名的插座获取正确的内容,但一旦我设置虽然我打电话给_super()
,但未命名的出口停止获取任何内容。
所以我的问题是如何在不干扰同名resource
的未命名插座的正常工作的情况下设置其他命名插座?
更新
答案 0 :(得分:1)
我不确定多个outlets
的问题是什么,但是我使用partial
帮助程序才能使用它。
<script type="text/x-handlebars" data-template-name="index">
{{#linkTo index/foo}}Go to Foo{{/linkTo}} <br>
{{#linkTo index/bar}}Go to Bar{{/linkTo}} <hr>
text inside index template
<hr>
{{outlet}}
{{render "sidebar"}}
</script>
这是jsfiddle。
<强>更新强>
jsfiddle已更新为使用{{render}}
帮助程序而不是{{partial}}
。
如果您使用的是{{partial}}
助手,则会使用现有的上下文。如果需要重用模型/控制器,最好使用{{render}}
,因为它会为您创建新的视图/控制器/模板上下文。然后,您可以使用modelFor
或controllerFor
个钩子。