Проблема : Я пытаюсь получить доступ к параметрам запроса, которые проверяет охранник маршрута, а не к текущим параметрам запроса снимка URL-адреса.
ActivatedRoute показывает только текущий статус маршрута, в котором они находятся, а не тот, который находится в пути.Так что, если я нахожусь на странице «app / users / list», снимок маршрута будет «app / users / list», когда информация извлекается для защиты canActivationChild, но я пытаюсь получить доступ к ссылке, на которую они идут, а не кудаони приходят из.(это то, что предполагается делать Angular; это текущий активный снимок)
Вопрос : Как получить доступ к маршруту параметров дочернего запроса, который находится в пути и предположительно должен быть защищенпротив?
Сценарий : у меня есть таблица со списком пользователей, и каждый пользователь может либо перейти на панель мониторинга или на экран редактора для завершения, прежде чем войти на панель мониторинга.Поэтому, когда пользователь нажимает на пользователя из таблицы списка пользователей, средство защиты маршрута должно проверить, имеют ли пользователь определенные свойства, не равные NULL, прежде чем перейти к панели управления, и если у них есть какие-либо свойства NULL, они направляются защитником.на страницу редактора.Страница панели мониторинга защищена средством canActivationChild, которое решает, могут ли данные пользователя отображаться на этой панели, основываясь на том, есть ли у них вся доступная информация, и если нет, то перенаправляются в редактор для завершения.
// The Link
this.router.navigate(['/dashboard', { id: userId }])
// The Guard
@Injectable()
export class CanShowUserDashboard implements CanActivateChild {
constructor(
private _router: Router,
private _route: ActivatedRoute
) {}
canActivateChild() {
this._route.queryParams.subscribe((next) => {
let queryParams = next.id;
// queryParams is undefined
})
}
}
Цель Получение параметров запроса из ссылки на панели мониторинга, а не со страницы списка текущего активного пользователя.
Единственное решение, которое я получил? Подумал о передачепользователь в службу, и иметь охрану доступа к службе, чтобы получить информацию.