Вопрос был обновлен
Я искал информацию в интернете, но, к сожалению, ничего не нашел.Существует много информации о том, как Angular может перехватывать значения из строки URL-адреса, если вы передаете их в качестве параметров, но у меня есть другой случай.
После успешной регистрации регистрации мое приложение отправляет URL-адрес из внутреннего интерфейса во внешний интерфейс.Этот URL содержит id
и token
и выглядит следующим образом:
http://localhost:4200/activate?id=MzU&token=541-b257b0475444facd4e3f
Мой вопрос, как в Angular 7+ можно получить значения id
и token
из URL?
Пожалуйста, обратите внимание , как я уже сказал, этот URL-адрес исходит от бэк-энда.После регистрации пользователя мой бэкэнд генерирует этот URL и отправляет электронное письмо, которое содержит его.Пользователь щелкает URL-адрес и открывает его в браузере.
Спасибо!
В настоящее время я попробовал следующее, ничего из этого не работает:
// app-routing.module.ts
const routes: Routes = [
{ path: 'activate*', component: EmailConfirmationComponent },
// otherwise redirect to root
{ path: '**', redirectTo: '', canActivate: [AuthGuard] }
];
// email-confirmation-component.ts
import { Component, OnInit } from '@angular/core';
import { Router, ActivatedRoute, Params } from '@angular/router';
export class EmailConfirmationComponent implements OnInit {
private id: string;
private token: string;
constructor(
private activatedRoute: ActivatedRoute,
private router: Router
) {}
ngOnInit() {
this.activatedRoute.params.forEach((params: Params) => {
this.id = params['id'];
this.token = params['token'];
console.log(this.id, +'\n' + this.token);
});
this.activatedRoute.paramMap.subscribe(params => {
console.log(params);
});
console.log(this.activatedRoute.snapshot.params['id']);
console.log(this.activatedRoute.snapshot.params['token']);
console.log(this.activatedRoute.snapshot.paramMap.get('id'));
this.activatedRoute.queryParams.subscribe(params => {
console.log(params['token']);
console.log(params['id']);
});
}
}