Когда вы нажмете на сером поле слева от выхода ячейки, оно разворачивает вывод и покажет вам всю фигуру.
Чтобы изменить настройки навсегда, проверьте следующий вопрос: Отключить iPython Notebook Autoscrolling
Итак, я сделал вторую попытку моего первого подхода, и мне удалось заставить его работать.
Я определил свои SegmentEnums
enum RouteSegment1 {
value1,
value2
}
enum RouteSegment2 {
value1,
value2
}
Создал охрану
export class EnumRouteGuard implements CanActivate {
constructor(private router: Router) { }
public canActivate(
next: ActivatedRouteSnapshot,
state: RouterStateSnapshot): Observable<boolean> | Promise<boolean> | boolean {
const segment1: string = next.paramMap.get('routeSegment1')!;
const segment2: string = next.paramMap.get('routeSegment2')!;
const segment1IsEnum = Object.keys(RouteSegment1).find(key => RouteSegment1[key] === segment1);
const segment2IsEnum = Object.keys(RouteSegment2).find(key => RouteSegment2[key] === segment2);
if (!(segment1IsEnum && segment2IsEnum) ) {
this.router.navigate([someOtherRoute]);
return false;
}
return true;
}
}
И использовал их в моих маршрутах
const routes: Routes = [
{
path: '', component: ParentComponent, children: [
{
path: ':routeSegment1',
component: RouteSegment1Component,
canActivate: [EnumRouteGuard],
},
{
path: ':routeSegment1/:routeSegment2',
component: RouteSegment2Component,
canActivate: [EnumRouteGuard],
},
],
},
];
Не ясно, чего вы собираетесь достичь.
По крайней мере, Ваш код
{
path: RouteSegment1.value1/RouteSegment2.value1,
component: RouteSegment2Component,
},
должен быть записан как
{
path: RouteSegment1.value1,
component: RouteSegment1Component,
children: [
{
path: RouteSegment2.value1,
component: RouteSegment2Component
}
]
}