У меня есть эта таблица маршрутизации:
// Routing array - set routes to each html page
const appRoutes: Routes = [
{ path: '', redirectTo: '/courses', pathMatch: 'full' },
{ path: 'courses', component: CourseListComponent, pathMatch: 'full'},
{ path: 'courses/:id', component: CourseDetailComponent, pathMatch: 'full' },
{ path: 'courses/:id/unit/:unitId', component: CoursePlayComponent,
children: [
{ path: '', component: CourseListComponent },
{ path: 'lesson/:lessonId', component: CourseLessonComponent, data: 'lesson },
{ path: 'quiz/:quizId', component: CourseQuizComponent, data: 'quiz, }
]},
{ path: '**', component: PageNotFoundComponent, pathMatch: 'full' }];
//Course-Play.component
constructor(private courseService: CourseService,
private route: ActivatedRoute,
private router: Router,
public sanitizer: DomSanitizer) {
route.url.subscribe(() => {
console.log(route.snapshot.children.data); }); // <-- undefined
}
ngOnInit() {
// this is what I want to do but I don't know how
if (this.route.snapshot.children.data == 'lesson) {
// activate lesson children
}
else {
// activate quiz children
}
}
В ngOnInit в режиме игры я хочу узнать, является ли маршрут уроком /: уроком или викториной /: викториной.Мне нужно только знать, есть ли урок или викторина на маршруте, а затем активировать другого ребенка.Я знаю, как сделать это с params (с route.snapshot), но не со статическим текстом.
РЕДАКТИРОВАТЬ: попытался использовать данные, но он не работает