2016-10-21 12 views
0

Моя структура проекта выглядит так:Угловое 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.

Я действительно не понимаю, что произошло. Есть идеи? Благодарю.

ответ

0

я definen маршрут что-то вроде этого в едином file.ts маршрутизации, который работает хорошо для меня константных appRoutes: Маршруты = [ { путь: '', RedirectTo: '/', Войти pathMatch: ' полный» }, { путь: 'LogIn', компонент: LoginComponent },

{ 
    path: 'DashBoard', 
    component: DashboardComponent , 
    children: [ 
     { path: '', component: DashboardComponent }, 
     { path: 'Home', component: HomeComponent}, 



    ] 
}, 
Смежные вопросы