我正试图为孩子写路由。我遇到的问题是路径没有正确地插入浏览器的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;我得到了正确的结果
答案 0 :(得分:0)
当您的路线以/
开头时,它指的是您应用的根。您需要将其删除,否则请使用完整路径,例如routerLink="/menu/upload"
。