在我的 Angular 5 应用程序中,我正在做这样的事情
this.returnUrl = this.route.snapshot.queryParams['returnUrl']
当用户访问路由但未登录时,我正在使用它。他被重定向到登录页面,登录后他应该回到这个返回网址。
问题是,http://localhost:4200/schedule?selectedDate=2018-01-29 访问此路由时,返回 url 变为:
http://localhost:4200/login?returnUrl=%2Fschedule%3FselectedDate%3D2018-01-29 成功登录后,应用程序会尝试转到 http://localhost:4200/%2Fschedule%3FselectedDate%3D2018-01-29 URL,但由于无法识别路径,因此会引发 404 错误。
知道如何阻止 Angular 将我的网址更改为这种格式吗?我假设它会选择正确的 URL。
我设法以某种方式解决此问题,而不是使用
this.router.navigate(this.returnUrl)
我用了
this.router.navigateByUrl(this.returnUrl);
我认为您可以像这样简单地添加网址<button class="btn btn-md btn-danger pull-right" routerLink="../../">cancel</button>
否则调用点击事件
使用这个。
this.returnUrl = decodeURIComponent(this.route.snapshot.queryParams['returnUrl']);