Моя структура проекта выглядит так:Угловое 2 ребенка маршрутизатор не работает
Войти -> Панель управления -> Главная
Главная является дочерним Dashboard.
То, что я хочу, чтобы перенаправить на Войти страницы, когда пользователь не вошел в классе охранника:.
import { Injectable } from '@angular/core';
import { CanActivate } from '@angular/router';
import { Meteor } from 'meteor/meteor';
@Injectable()
export class CanActivateGuard implements CanActivate {
constructor() {}
canActivate() {
return Meteor.userId() != null;
}
}
модуль для панели управления:
import { CanActivateGuard } from '../activate-guard';
@NgModule({
providers: [
CanActivateGuard
],
маршрутизатора для панели управления:
import { CanActivateGuard } from '../activate-guard';
export const DASHBOARD_ROUTES: Route[] = [
{
path: 'dashboard',
component: DashboardComponent,
canActivate: [CanActivateGuard],
children: [
...HOME_ROUTES
]
Модуль для дома:
import { CanActivateGuard } from '../../activate-guard';
@NgModule({
providers: [
CanActivateGuard
],
маршрутизатор для дома:
import { CanActivateGuard } from '../../activate-guard';
export const HOME_ROUTES : Route[] = [
{ path: 'home', component: HomeComponent, canActivate: [CanActivateGuard] }
]
Это работает нормально, если мой URL является: http://localhost:3000/dashboard, он будет перенаправлять на страницу входа в систему. Но это будет пустой экран, если URL-адрес: http://localhost:3000/dashboard/home.
Я действительно не понимаю, что произошло. Есть идеи? Благодарю.