У меня есть маршрутизация, которая работает следующим образом:
по умолчанию, URL выглядят так:
/
, /basket
, /insights/something
и т. Д.
Тем не менее, пользователь может выбрать субприложение, которое вставляется в URL-адрес, чтобы он выглядел следующим образом:
/@app/
, /@app/basket
, /@app/insights/something
.
Мне удалось извлечь первую часть из URL, используя сопоставление:
export function routingMatcher(segments) {
if (segments.length === 0 || segments[0].path[0] !== '@') {
return {
consumed: []
};
}
return {
consumed: [ segments[0] ],
posParams: {
subApplicationId: new UrlSegment(segments[0].path.slice(1), {})
}
};
}
Однако, когда есть директива routerLink или router.navigate
, часть @app не сохраняется.Я должен был бы вручную добавить его к каждому вызову router.navigate или routerLink с не относительным путем.
Как я могу автоматизировать этот процесс, чтобы он всегда автоматически добавлялся, если он явноуже добавлено (на случай, если мы хотим переключить под приложения)?