作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的要求是如果用户从地址栏手动更改浏览器 URL,则阻止用户导航。路由只能通过 Angular 应用程序(router.navigate())完成。
我知道我们可以使用 canActive 属性实现路由保护。
canActivate(
next: ActivatedRouteSnapshot,
state: RouterStateSnapshot): Observable<boolean> | Promise<boolean> | boolean {
}
但我不知道我可以使用 ActivatedRouteSnapshot 或 RouterStateSnapshot 的哪些属性来识别用户正在使用手动 url 更改在应用程序内部导航。你能帮忙吗?
最佳答案
我认为 ActivatedRouteSnapshot 或任何其他类都不可能做到这一点。
我要补充的是,这对您的应用程序来说是一种奇怪的行为,因为这也意味着您不希望您的用户能够刷新您的页面。如果您担心通过手动导航到您的组件,您没有足够的数据使其正常工作,您可以使用您提到的守卫。
希望对你有帮助
关于Angular - 仅在使用 router.navigate() 方法路由时才允许路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52663044/
我是一名优秀的程序员,十分优秀!