我有一个基于帖子的应用程序。当我像这样嵌套路线时:
this.resource('posts', function() {
this.route('post', {path: ':post_id'});
});
并尝试访问/ posts / id链接,如果我将{{outlet}}放入帖子模板,它只会呈现模板。
以下是我根据github工作的代码。它具有所有功能,除了它呈现到父插座而不是应用程序插座。
是否可以让show,new或edit模板在应用程序{{outlet}}中呈现其模板?
答案 0 :(得分:2)
您可以覆盖路线的renderTemplate(controller, model)
挂钩并致电this.render
:
renderTemplate: function(controller, model) {
this.render('post',
{
into: 'appplication', // the template to render into
});
}
您可以传递的其他选项包括outlet
(选择指定的插座)和controller
(使用您选择的控制器)。
有关详细信息,请参阅routing guide。
答案 1 :(得分:0)
通常,如果您使用嵌套路线,则必须具有嵌套路径。否则,使用浏览器后退按钮转换回父路径将输出一个空模板。希望你知道它。
您可以在以下链接中找到更多详情
答案 2 :(得分:0)
我知道这个答案有点晚,但我遇到了同样的问题。问题是嵌套路由依赖于嵌套出口。如果您希望将路线渲染到应用程序插座中,您可以执行以下操作:
this.resource('posts');
this.route('post', { path: '/posts/:post_id' });
这样,URL仍然是嵌套的,但所有内容都可以正确连接。 您还可以更进一步,通过在路径中添加后缀来定义不同的模板名称。例如
this.resource('posts.show', { path: '/posts/:post_id' });