我有一个“关于”资源,其中嵌套了 about.philosophy 和 about.staff 路线。在 AboutRoute 中有一个重定向,因此当您单击导航上的“关于”链接时,应用程序将重定向到 about.philosophy。
Ew.AboutRoute = Ember.Route.extend({
redirect: function(){
this.transitionTo('about.philosophy');
}
});
但是,如果您当前位于其中一个嵌套路由中并再次单击导航中的“关于”链接,而不是将您重定向到 about.philosophy,它会呈现“/about”,它没有模板,因此它已损坏页。
再次尝试输入 AboutRoute 后,为什么此重定向不起作用?
更新
Dan 的解决方案解决了这个问题,但也导致 subnav 损坏。我将具有 subnav 代码的 AboutRoute 更改为 AboutIndexRoute,并且 subnav 不再显示:
Ew.AboutIndexRoute = Ember.Route.extend({
activate: function(){
this.controllerFor('application').set('renderAboutSubNav', true);
},
deactivate: function(){
this.controllerFor('application').set('renderAboutSubNav', false);
},
redirect: function(){
this.transitionTo('about.philosophy');
}
});
然后在 application.hbs 我有:
{{#if renderAboutSubNav}}
{{render 'about/subnav'}}
{{/if}}