angular - Angular 8 路由
问题描述
我正在为我的项目使用 metronic 模板,因为模板中已经存在大部分所需的东西,但是在登录时,当我更改 API URL 时,它会将每个有效的电子邮件 ID 传递到下一页。因此,我尝试更改代码以便它可以按照要求运行,但事情是在验证电子邮件 ID 之后,它不会带我进入下一页。任何形式的帮助将不胜感激。
该模板遵循这种路由方法:
this.router.navigateByUrl(this.returnUrl);
我试了一下:
this.router.navigate(['dashboard']);
登录组件.ts
ngOnInit(): void {
this.initLoginForm();
// redirect back to the returnUrl before login
this.route.queryParams.subscribe(params => {
this.returnUrl = params['returnUrl'] || '/';
});
}
submit() {
this.auth.login(authData.email, authData.password)
.subscribe((res) => {
if(res.code === 200){
localStorage.setItem('token', res.data.token)
this.router.navigateByUrl(this.returnUrl); // Main page
}else{this.authNoticeService.setNotice(this.translate.instant('AUTH.VALIDATION.INVALID_LOGIN'), 'danger');}
})
}
所需的输出应在提供有效电子邮件 ID 时将其带到仪表板,并为错误的电子邮件 ID 提供错误。虽然它没有移动到下一页,这是提交按钮和有效电子邮件(实际)上的仪表板。
解决方案
您可以订阅或拍摄快照:
this.returnUrl = this.route.snapshot.queryParams['returnUrl'] || '/';
为了使其在您重定向到登录时起作用,请不要忘记提供参数
// e.g. we are in /list page
this.router.navigate(['/login'], { queryParams: { returnUrl: '/list' } });
推荐阅读
- python-3.x - 在 Pandas DF 匹配文本中突出显示文本(字符串类型)
- keycloak - 无法在 keycloak 中创建初始管理员用户
- python - 列表中字典中的重复键
- node.js - 如何在服务器上运行 NodeJs SocketIO(Centos 7)
- amazon-web-services - 我需要存储来自cli的多个aws glacier启动作业请求的jobid
- python - 如何在子进程运行时从子进程中获取标准输出?
- shell - 带表的 foreach 命令
- rest - 领英 V2 API
- java - JAVA 中的 FIX 协议示例源代码?
- fix-protocol - FIX 协议:未按要求顺序指定的标签