Angular router-outlet - Error: Cannot match any routes. URL Segment
Angular router-outlet - Error: Cannot match any routes. URL Segment
我提前道歉,因为我已经看到了几个关于这个的帖子,但是尽管尝试了很多次我还是无法解决我的问题。
我在 Angular 13.3.9
我尝试按照此处所述使用出口路由器:https://angular.io/api/router/RouterOutlet
我的目标是根据html代码中不同地方的路由加载组件。
这是尝试过的最简单的代码:
路由器
const routes: Routes = [
{ path: 'challenge/pwd', component: ChallengePwd, outlet: 'challenge-pwd' },
{ path: 'identifier', component: Identifier, outlet: 'identifier' }
];
@NgModule({
imports: [RouterModule.forRoot(routes)],
exports: [RouterModule]
})
export class AppRoutingModule { }
app.component.html
<main>
<section>
<logo-loader></logo-loader>
<section class="presentation">
<router-outlet name="identifier"></router-outlet>
<router-outlet name="challenge-pwd"></router-outlet>
</section>
</section>
</main>
当我尝试访问 url
http://localhost:4201/标识符
我收到一个错误:Error: Cannot match any routes. URL Segment: 'identifier'
我也试过像这样在父组件中封装出口路由:
const routes: Routes = [
{
path: 'oauth',
component: MainPage,
children: [
{ path: 'challenge/pwd', component: ChallengePwd, outlet: 'challenge-pwd' },
{ path: 'identifier', component: Identifier, outlet: 'identifier' }
]
}
];
@NgModule({
imports: [RouterModule.forRoot(routes)],
exports: [RouterModule]
})
export class AppRoutingModule { }
app.component.html
<router-outlet></router-outlet>
main.page.html
<main>
<section>
<logo-loader></logo-loader>
<section class="presentation">
<router-outlet name="identifier"></router-outlet>
<router-outlet name="challenge-pwd"></router-outlet>
</section>
</section>
</main>
但是没有任何效果,我一直收到这个错误Error: Cannot match any routes. URL Segment: 'identifier'
您的正确 url 是:http://localhost:4201/oauth/identifier
您设置 oauth
的路径
children 其中 identifier
我认为这不是实现目标的好方法。有一个working example适合你
首先,你需要一个没有名字的主路由器,所以你的路由应该是这样的
{ path: 'oauth', component: OauthComponent },
{ path: 'challenge-pwd', component: ChallengeComponent, outlet: 'challenge-pwd' },
{ path: 'identifier', component: IdentifierComponent, outlet: 'identifier' },
不幸的是,URL 不友好,您应该尊重语法
/primaryRoute(routerOutletName:path)
所以你的 URL 的例子应该是
http://localhost:4200/oauth(challenge-pwd:challenge-pwd)
我提前道歉,因为我已经看到了几个关于这个的帖子,但是尽管尝试了很多次我还是无法解决我的问题。
我在 Angular 13.3.9
我尝试按照此处所述使用出口路由器:https://angular.io/api/router/RouterOutlet
我的目标是根据html代码中不同地方的路由加载组件。
这是尝试过的最简单的代码:
路由器
const routes: Routes = [
{ path: 'challenge/pwd', component: ChallengePwd, outlet: 'challenge-pwd' },
{ path: 'identifier', component: Identifier, outlet: 'identifier' }
];
@NgModule({
imports: [RouterModule.forRoot(routes)],
exports: [RouterModule]
})
export class AppRoutingModule { }
app.component.html
<main>
<section>
<logo-loader></logo-loader>
<section class="presentation">
<router-outlet name="identifier"></router-outlet>
<router-outlet name="challenge-pwd"></router-outlet>
</section>
</section>
</main>
当我尝试访问 url http://localhost:4201/标识符
我收到一个错误:Error: Cannot match any routes. URL Segment: 'identifier'
我也试过像这样在父组件中封装出口路由:
const routes: Routes = [
{
path: 'oauth',
component: MainPage,
children: [
{ path: 'challenge/pwd', component: ChallengePwd, outlet: 'challenge-pwd' },
{ path: 'identifier', component: Identifier, outlet: 'identifier' }
]
}
];
@NgModule({
imports: [RouterModule.forRoot(routes)],
exports: [RouterModule]
})
export class AppRoutingModule { }
app.component.html
<router-outlet></router-outlet>
main.page.html
<main>
<section>
<logo-loader></logo-loader>
<section class="presentation">
<router-outlet name="identifier"></router-outlet>
<router-outlet name="challenge-pwd"></router-outlet>
</section>
</section>
</main>
但是没有任何效果,我一直收到这个错误Error: Cannot match any routes. URL Segment: 'identifier'
您的正确 url 是:http://localhost:4201/oauth/identifier
您设置 oauth
的路径
children 其中 identifier
我认为这不是实现目标的好方法。有一个working example适合你
首先,你需要一个没有名字的主路由器,所以你的路由应该是这样的
{ path: 'oauth', component: OauthComponent },
{ path: 'challenge-pwd', component: ChallengeComponent, outlet: 'challenge-pwd' },
{ path: 'identifier', component: IdentifierComponent, outlet: 'identifier' },
不幸的是,URL 不友好,您应该尊重语法
/primaryRoute(routerOutletName:path)
所以你的 URL 的例子应该是
http://localhost:4200/oauth(challenge-pwd:challenge-pwd)