我想要实现的目标在这里非常基础。在Angular2应用程序中,我有以下流程:
/whatever
),其中包含输入和所有/summary
)我需要的是摘要视图只能通过按输入视图上的按钮来访问 >。这意味着:
/summary
网址直接访问摘要视图时,用户会被重定向 我尝试的是是使用canActivate
为摘要视图实施safeGuard。问题是,我无法找到获取上一个网址的方法!
canActivate(route: ActivatedRouteSnapshot,
state: RouterStateSnapshot): boolean {
// return previous_url == '/whatever'
// how to find previous_url ???
}
任何有关如何获得前一个网址或其他方式来实现这一目标的帮助都是受欢迎的。
答案 0 :(得分:0)
您好,您可以像这样检查摘要组件中的条件。
previousUrlSnapshot:字符串;
constructor(router: Router) {
router.events
.filter(event => event instanceof NavigationEnd)
.subscribe(e => {
console.log('prev:', this.previousUrlSnapshot);
this.previousUrlSnapshot = e.url;
if(this.previousUrlSnapshot.includes('inputViewRoute')) // your Input Route
{
this.router.navigateByUrl("inputViewRoute");
}
});
}