Angular 重定向到具有动态参数的路径的路由器错误
Angular Router error redirecting to path with dynamic parameter
我想在用户访问 root (localhost:4200
) 时将用户重定向到具有唯一 UUID 的路径。
但是我得到这个错误
ERROR Error: Uncaught (in promise): Error: Cannot match any routes. URL Segment: 'document/4fdb309b-df59-4da8-a32d-5265f7925bba'
Error: Cannot match any routes. URL Segment: 'document/4fdb309b-df59-4da8-a32d-5265f7925bba'
下面是我的路由器模块代码段
import { v4 as uuidv4} from 'uuid'
const routes : Routes = [
{path : '', redirectTo : '/document/'+uuidv4(), pathMatch: 'full'},
{path : 'documents/:id', component: DocumentComponent}
]
@NgModule({
imports: [RouterModule.forRoot(routes)],
exports: [RouterModule]
})
export class AppRoutingModule {
}
不知道怎么了!
您不能声明动态路由路径。 uuid4() 每次都会生成不同的 uuid,而且您没有那么多组件映射到路由。您可能还希望 uuid 作为路由参数。将第一条路线更改为以下路线,看看是否有帮助。
{path : '', redirectTo : '/document/someComponent', pathMatch: 'full'},
很可能是因为路线排序。尝试重新排列路线
const routes : Routes = [
{path : 'documents/:id', component: DocumentComponent},
{path : '', redirectTo : '/document/'+uuidv4(), pathMatch: 'full'}
]
请注意 Angular 路由器使用 first-match wins strategy 并且数组中路由的顺序很重要。
我想在用户访问 root (localhost:4200
) 时将用户重定向到具有唯一 UUID 的路径。
但是我得到这个错误
ERROR Error: Uncaught (in promise): Error: Cannot match any routes. URL Segment: 'document/4fdb309b-df59-4da8-a32d-5265f7925bba'
Error: Cannot match any routes. URL Segment: 'document/4fdb309b-df59-4da8-a32d-5265f7925bba'
下面是我的路由器模块代码段
import { v4 as uuidv4} from 'uuid'
const routes : Routes = [
{path : '', redirectTo : '/document/'+uuidv4(), pathMatch: 'full'},
{path : 'documents/:id', component: DocumentComponent}
]
@NgModule({
imports: [RouterModule.forRoot(routes)],
exports: [RouterModule]
})
export class AppRoutingModule {
}
不知道怎么了!
您不能声明动态路由路径。 uuid4() 每次都会生成不同的 uuid,而且您没有那么多组件映射到路由。您可能还希望 uuid 作为路由参数。将第一条路线更改为以下路线,看看是否有帮助。
{path : '', redirectTo : '/document/someComponent', pathMatch: 'full'},
很可能是因为路线排序。尝试重新排列路线
const routes : Routes = [
{path : 'documents/:id', component: DocumentComponent},
{path : '', redirectTo : '/document/'+uuidv4(), pathMatch: 'full'}
]
请注意 Angular 路由器使用 first-match wins strategy 并且数组中路由的顺序很重要。