Это один из способов сделать это.Получите URL-адрес, получите текущие параметры (потому что звучит так, будто вы не знаете, что они есть), если у вас есть и projectid, и идентификатор пользователя, то вы направляетесь к одному с обоими.Если URL-адрес оканчивается на 'o'
, значит, вы находитесь на маршруте /info
, а если он оканчивается на 's'
, то это маршрут /users
.
constructor(private activatedRoute: ActivatedRoute) {}
replacePrarm(projectId) {
// get current url
const url = this.router.url;
// get current params
this.activatedRoute.params.subscribe((params: Params) => {
if(params['projectId'] && params['userId']) {
router.navigate(projectId, 'users', params['userId'], 'profile'], {relativeTo: route});
} else if (url[url.length - 1] === 'o') {
router.navigate(projectId, 'info'], {relativeTo: route});
} else if (url[url.length - 1] === 's') {
router.navigate(projectId, 'users'], {relativeTo: route});
}
});
}
Предполагается, что вы понятия не имеете, по какому маршруту вы находитесь, но в действительности у вас должно быть какое-то представление, если вы находитесь в пользователях, информации или профиле.В противном случае вы используете один компонент для трех совершенно разных страниц.