2016-10-21 68 views
0

我的項目結構是這樣的:角2子路由器不能正常工作

登錄 - >控制面板 - >首頁

首頁是儀表板的孩子。

我想是重定向到登錄頁面時,在沒有登錄用戶的守衛類:

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] } 
] 

這是工作的罰款,如果我的網址是:http://localhost:3000/dashboard,它會重定向到登錄頁面。但是如果URL是:http://localhost:3000/dashboard/home,它將變成空白屏幕。

我真的不明白髮生了什麼事。任何想法?謝謝。

回答

0

我definen路線像這樣在一個單一的路由file.ts這是工作正常,我 常量appRoutes:路線= [{ 路徑 : '', redirectTo: '/登錄', pathMatch:'全」 },{ 路徑 : '登錄', 組分:LoginComponent },

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



    ] 
},