余烬重定向仅在您第一次进入路由时触发
Ember redirect only firing the first time you enter the route
我有一个"关于"资源,它下面嵌套了about.philosophy和about.staff路由。在AboutRoute中有一个重定向,因此当您单击导航上的"关于"链接时,应用程序会重定向到about.philosophy。
Ew.AboutRoute = Ember.Route.extend({
redirect: function(){
this.transitionTo('about.philosophy');
}
});
但是,如果您当前在其中一个嵌套路由内并再次单击导航中的"关于"链接,而不是将您重定向到 about.philosophy,它会呈现"/about",它没有模板,所以它是一个损坏的页面。
为什么在您尝试第二次输入 AboutRoute 后此重定向不起作用?
更新
Dan的解决方案解决了这个问题,但也导致了子导航损坏。我将包含子导航代码的 AboutRoute 更改为 AboutIndexRoute,并且子导航不再显示:
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');
}
});
然后在应用程序.hbs中,我有:
{{#if renderAboutSubNav}}
{{render 'about/subnav'}}
{{/if}}
我建议将redirect
放在AboutIndexRoute
上,以便仅在用户最终到达/about
而不是子路由时才调用它。例如,您可能希望允许用户直接导航到/about/staff
,并且您不希望在前往AboutStaffRoute
的途中输入AboutRoute
时调用redirect
。
顺便说一下,redirect
现在已被弃用,取而代之的是afterModel
钩子(尽管afterModel
现在在内部调用redirect
)。
相关文章:
- 相同的RegExp返回不同的结果-第一次是正确的结果,第二次是null
- 删除确认对话框在第一次单击时不起作用
- Javascript:JSON请求仅在第一次工作
- 推特引导:弹出窗口不会在第一次点击时出现,但会在第二次点击时显示
- 角度提交仅进行第一次v2错误
- 设置第一次执行的超时
- 为第一次尝试Javascript的经验丰富的开发人员提供建议
- jQuery on()-不;第一次点击时无法工作
- 第一次点击动态创建的表后,点击不工作
- 在Rails中第一次单击后禁用链接,Coffeescription
- PHP和JS脚本的奇怪问题,在我刷新页面之前第一次失败
- 循环中的切换脚本只适用于第一次迭代
- 在没有焦点的情况下捕获画布上的第一次单击事件
- Javascript onclick事件在第一次单击时未启动
- 让jqGrid第一次工作
- addClass,它更改bg图像,但在第一次加载时没有闪烁
- Cordova AngularJS Ionic标签的内容在第一次加载时重叠
- show-hide只在ajax调用中第一次工作
- 余烬重定向仅在您第一次进入路由时触发
- 主干网路由第一次没有发射