微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

angular-ui-router – 当路由参数无效时,以角度2路由到404页面

假设我有一个像这样的param路径(在Angular 2中):/ user1 / products /:id,它可以有子路由,如/ user1 / products / 3 / reviews.

当我导航到/ user1 / products / -1时,我检查我的服务器,如果产品不存在,我想渲染404页面而不影响浏览器历史记录.

使用router.navigate([‘/ 404’])或router.navigateByUrl(‘/ 404’)似乎不起作用,因为它将/ user1 / products / -1和/ 404添加到浏览器历史记录中.

这意味着当我按下浏览器中的“后退”按钮时,我会回到/ user1 / products / -1,它会立即重定向到/ 404并且我基本上停留在/ 404.

在Expressjs中,我们会执行类似next()的操作,将请求传递给404处理程序. Angular 2中有客户端等价物吗?

更新

在新的Router V3中,您可以使用https://angular.io/guide/router#canactivate-requiring-authentication中所述的防护

原版的

我认为你应该使用@CanActivate()进行检查.如果你转发@CanActivate(),则无法将无效的URL添加到历史记录中(未尝试)

有关如何在@CanActivate()中使用DI的信息,请参阅https://github.com/angular/angular/issues/4112

原文地址:https://www.jb51.cc/angularjs/142211.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐