Вы проанализируете URL-адрес, чтобы проверить, соответствует ли он требуемому шаблону, и вернете использованный URL-адрес вместе с пользовательским параметром маршрута.
RouterModule.forRoot([
{
matcher: (url) => {
if (url.length === 1 && url[0].path.match(/^@[\w]+$/gm)) {
return {
consumed: url,
posParams: {
username: new UrlSegment(url[0].path.substr(1), {})
}
};
}
return null;
},
component: ProfileComponent
}
])
В приведенном выше примере проверяется, чтобы увидетьчто в массиве только один сегмент, затем используется регулярное выражение, чтобы убедиться, что формат имени пользователя совпадает. Когда он совпадает, он возвращает весь использованный URL-адрес и определяет параметр маршрута username как подстроку пути. Если совпадений нет, возвращается null, и маршрутизатор продолжает искать другие маршруты, которые могут соответствовать URL. Это работает так же, как и другие маршруты, позволяет вам определять дочерние маршруты или даже лениво загруженные маршруты.
Пользовательский маршрут, совпадающий с угловым маршрутизатором