2017-07-27 144 views
0

我试图为孩子写路由。我遇到的问题是在不正确的路径中插入浏览器的url栏。在代码下面。角4孩子路由

router.module

const routes: Routes = [ 

    {path: 'menu', component: MenuComponent, canActivate: [AuthGuard], 
    children: [ 
     { path: 'upload', component: DrawingUploadComponent }, 
     { path: 'account', component: AccountComponent }, 
     { path: 'projects', component: ProjectListComponent } 
    ]} 
]; 

@NgModule({ 
    imports: [RouterModule.forChild(routes)], 
    exports: [RouterModule] 
}) 

export class MenuRoutingModule {} 

menu.component

<nav> 
    <a routerLink="/projects" routerLinkActive="active">Projects</a> 
    <a routerLink="/upload" routerLinkActive="active">Upload</a> 
    <a routerLink="/account" routerLinkActive="active">Account</a> 
</nav> 
MENU COMPONENT 
<router-outlet></router-outlet> 

父组件:

const routes: Routes = [ 
    {path: 'login', component: LoginComponent}, 
    {path: 'register', component: RegistrationComponent}, 
    {path: "", redirectTo: "login", pathMatch: "full"}, 
    {path: 'menu', component: MenuComponent, canActivate: [AuthGuard]} 
]; 

@NgModule({ 
    imports: [RouterModule.forRoot(routes)], 
    exports: [RouterModule] 
}) 

export class AppRoutingModule { 
} 

因此,当显示"/menu"菜单组件下的IM的问题是,现在当我点击任何链接,例如

<a routerLink="/upload" routerLinkActive="active">Upload</a> 

即时通讯控制台错误 无法匹配任何路由。网址细分:'上传' 错误:无法匹配任何路线。 URL段:“上传”

,但是当我想通过在浏览器栏手型的路线“/菜单/上传”我得到正确的结果

回答

0

当你的路线与/开始,那是指你的应用的根源。您需要将其删除,否则请使用完整路径routerLink="/menu/upload"