Я пытался использовать значения из значений для использования защиты маршрутизатора с путем
Я пытался использовать для получения значений из обещания в canActivate()
для защиты маршрутизатора.
private routeURL = new Subject<string> ();
canActivate() {
if (this.authenticationService.currentUserValue) {
this.getNavigationEnd().then(res => console.log('2 ' + res) );
// I want to get this.getNavigationEnd()'s result[true or false] for router guard's canActivate().
return true;
}
this.router.navigate(['/401']);
return false;
}
async getNavigationEnd() {
this.router.events.pipe(
filter(event => event instanceof NavigationEnd)
).subscribe((result) => {
let value: any;
value = result;
this.routeURL.next(value.url);
});
const valueArray = this.routeURL.asObservable();
let bool = false;
await valueArray.subscribe(value => {
console.log(value);
if (this.menuURIarray.includes(value)) {
bool = true;
} else {
bool = false;
}
});
console.log('1 ' + bool);
return bool;
}
Если возможно получить обещание со значением, защита маршрутизатора может проверить путь с путями маршрутизатора.
this.menuURIarray
- массив списка меню. и он сравнивается с навигационным путем RouteEnd.
И затем, если это не то же самое с этим массивом и navigationEnd, он возвращает истину или ложь.
Тогда canActivate использует это для проверки. это мой сценарий для защиты роутера