如何修复传递给Angular布管参数的值



假设我在路由模块中以以下方式设置了路由。

{
path: "dashboard/project/:projectId",
loadChildren: () =>
import("./modules/project-details/project-details.module").then(
(m) => m.ProjectDetailsModule
),
},
{
path: "dashboard/project/statistics",
loadChildren: () =>
import("./modules/projects-statistics/projects-statistics.module").then(
(m) => m.ProjectsStatisticsModule
),
},

当我以以下方式使用routerLink时;统计学";作为"0"的值;projectId";参数,并转到ProjectDetailsModule,而不是转到ProjectsStatisticsModule。

[routerLink]="['/dashboard', 'project', 'statistics']"

如何告诉代码不要将"statistics"作为"projectId"参数的值,并路由到ProjectsStatisticsModule而不是ProjectDetailsModule?

添加路由的顺序很重要。先添加具体管线,然后添加带有路径参数的管线。这样,在评估完所有具体路线后,总是在最后评估带有路径参数的路线。

对于您的情况,反转路由声明的顺序应该会产生预期的结果。

const routes = [
{
path: "dashboard/project/statistics",
loadChildren: () =>
import("./modules/projects-statistics/projects-statistics.module").then(
(m) => m.ProjectsStatisticsModule
),
},
{
path: "dashboard/project/:projectId",
loadChildren: () =>
import("./modules/project-details/project-details.module").then(
(m) => m.ProjectDetailsModule
),
}
];

在声明路由时,顺序总是很重要的。正如@Shravan所说,相应地颠倒顺序,它应该会起作用。

最新更新