我有一个非常简单的
angular 17
应用程序,但我在路由到子路由时遇到了问题。所有组件都是独立的。
这就是我的
app.routes.ts
的样子:
export const routes: Routes = [
{
path: "",
pathMatch: "full",
redirectTo: "home",
},
{
path: "home",
component: HomeComponent,
},
{
path: "market",
component: CampaignListComponent,
children: [
{
path: "device",
component: DeviceComponent,
},
]
},
];
这就是我的
app.component.html
的样子:
<div id="container">
<div id="content">
<router-outlet></router-outlet>
</div>
</div>
这是我的
app.config.ts
:
export const appConfig: ApplicationConfig = {
providers: [
provideRouter(routes),
],
};
如果我像这样导航到
/market
:
this.router.navigate(['market']);
它起作用了,市场页面出现了。我向我的
market.component.html
添加了一个按钮,称为:
this.router.navigate(['device'], { relativeTo: this.route });
但导航失败并显示以下消息:
错误错误:NG04002:无法匹配任何路由。网址段: “市场/设备”
我尝试将
<router-outlet></router-outlet>
添加到我的 market.component.html
但出现了同样的错误。
这是index.html:
<!doctype html>
<html lang="en">
<head>
</head>
<body class="mat-typography">
<app-root></app-root>
</body>
</html>
有什么问题吗?
您缺少基本 href,这可能是问题所在
<!DOCTYPE html>
<html lang="en">
<head>
<title>My app</title>
<meta charset="UTF-8" />
<base href="/" /> <!-- changed here! -->
</head>
<body class="mat-typography">
<app-root></app-root>
</body>
</html>
嗯,看来你的 html 是
我的角度应用程序