角4儿童路线

时间:2017-07-27 19:47:55

标签: javascript angular

我正试图为孩子写路由。我遇到的问题是路径没有正确地插入浏览器的URL栏中。代码下方。

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"下显示菜单组件时,现在当我点击任何链接时,例如

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

我得到控制台错误 无法匹配任何路线。网址细分:&#39;上传&#39; 错误:无法匹配任何路由。网址细分:&#39;上传&#39;

但是当我在浏览器栏中手动输入路线&#34; / menu / upload&#34;我得到了正确的结果

1 个答案:

答案 0 :(得分:0)

当您的路线以/开头时,它指的是您应用的根。您需要将其删除,否则请使用完整路径,例如routerLink="/menu/upload"

相关问题