В моих угловых проектах у меня есть разные лениво загруженные модули и компоненты для настольной и мобильной версии.
Когда я захожу на свою страницу, я не хочу, чтобы приложение решало, мобильное ли это устройство илибольшее (настольное) устройство.В зависимости от того, что я направляю на /mobile/...
или /desktop/...
.
, я начал с этого кода:
if (window.innerWidth < 450) {
this.router.navigateByUrl('/mobile');
} else {
this.router.navigateByUrl('/desktop');
}
Пока это работает, но есть одна проблема.Когда я нахожусь на маршруте, подобном /mobile/page1
, и перезагружаю страницу, я возвращаюсь к /mobile
.
Чтобы предотвратить это, я попытался проверить текущий маршрут и посмотреть, является ли он /mobile
или/desktop
маршрут и затем маршрут правильно.Вот так:
const currentRoute = this.router.url;
const isOnMobile = currentRoute.split('/')[1] === 'mobile' ? true : false;
if (window.innerWidth < 450) {
if (!isOnMobile) {
this.router.navigateByUrl('/mobile');
}
} else {
if (isOnMobile) {
this.router.navigateByUrl('/desktop');
}
}
Но я не могу получить URL-адрес внутри моего app.component
.URL всегда просто '/'.
1021 * Любая идея?