RNR*_*RNR 7 typescript angular
例如这个路由器
{
path: '/client',
component: ClientRootComponent,
children: [
{path: '', component: ClientListComponent},
{path: ':clientId', component: ClientOpenComponent, resolve: makeResolver(ClientOpenResolver)}
]
},
{
path: '**',
component: NotFoundComponent
}
Run Code Online (Sandbox Code Playgroud)
会将URL / client / 1234和/ client / asdf都传递给ClientOpenComponent。如何使/ client / asdf与NotFound匹配并传递给NotFoundComponent?
您可以将自定义匹配器传递给您的路线
import { defaultUrlMatcher } from '@angular/router/src/shared';
function digitsMatcher(segments: UrlSegment[], segmentGroup: UrlSegmentGroup, route: Route): UrlMatchResult | null {
const result = defaultUrlMatcher(segments, segmentGroup, route);
if (!result || !result.consumed || result.consumed.length < 1) {
return;
}
const re = /^\d+$/;
const match = re.exec(result.consumed[0].path);
if (match) {
return result;
}
return null;
}
Run Code Online (Sandbox Code Playgroud)
{
path: '/client',
component: ClientRootComponent,
children: [
{path: '', component: ClientListComponent},
{path: ':clientId', component: ClientOpenComponent, resolve: makeResolver(ClientOpenResolver), matcher: digitsMatcher}
]
},
{
path: '**',
component: NotFoundComponent
}
Run Code Online (Sandbox Code Playgroud)
该代码未经测试
也可以看看
| 归档时间: |
|
| 查看次数: |
1803 次 |
| 最近记录: |