使用 ID 调用我的 Angular 应用程序入口点时出现问题 - 无法匹配任何路由

Problem calling my Angular application entry point with an ID - Cannot match any routes

所以我的问题很简单,但出于某种原因,我无法让它工作:

我希望使用 ID 调用我的应用程序。类似于:

myapplication.com/1234 - 其中 1234 是一个 ID。为启动组件提供 Id 是必须的。

为此,我创建了两条路线:

export const appRoutes: Routes = [
  { path: ':id', redirectTo: 'start', pathMatch: 'full' },
  { path: 'start/:id', component: StartComponent },
];

我预期的行为是,如果有人导航到 myapplication.com/1234,他们将被重定向到开始并提供 ID。但是,我不断收到错误 Cannot match any routes. URL Segment: '1234'。我不想使用 queryParams (?id=1234) 所以这不是一个选项。所以我的问题是我需要做什么才能完成这项工作?

删除 redirectTo 并按以下方式定义它:

export const appRoutes: Routes = [
  { path: 'start/:id', component: StartComponent },
  { path: ':id', component: StartComponent },
];

两个 URL 都将解析为 StartComponent,您可以在那里处理 id 值。如果需要,您还可以在 StartComponent 中处理重定向。