Size: a a a

Angular - русскоговорящее сообщество

2020 April 27

IO

Ivan Okhrimenko in Angular - русскоговорящее сообщество
Привет, подскажите, пожалуйста, как правильно проверить на браузер в роутинг модуле (в проекте SSR)?
{
   path: '',
   loadChildren:
     typeof document !== 'undefined' ?
       document.location.hostname === environment.SHORT_DOMAIN ?
         './modules/main/main.module#MainModule' :
         './modules/booking-engine/booking-engine.module#BookingEngineModule' : './modules/main/main.module#MainModule'
 }
, сейчас делаю так, но падает ошибка “document is not defined”
источник

ДМ

Денис Макаров... in Angular - русскоговорящее сообщество
Ivan Okhrimenko
Привет, подскажите, пожалуйста, как правильно проверить на браузер в роутинг модуле (в проекте SSR)?
{
   path: '',
   loadChildren:
     typeof document !== 'undefined' ?
       document.location.hostname === environment.SHORT_DOMAIN ?
         './modules/main/main.module#MainModule' :
         './modules/booking-engine/booking-engine.module#BookingEngineModule' : './modules/main/main.module#MainModule'
 }
, сейчас делаю так, но падает ошибка “document is not defined”
модули конфигурируются на этапе компиляции, никакого браузера, а тем более document там нет
источник

IO

Ivan Okhrimenko in Angular - русскоговорящее сообщество
как это проверить?
источник

ДМ

Денис Макаров... in Angular - русскоговорящее сообщество
хмм, это ssr, тогда не знаю
источник

S

Sergey in Angular - русскоговорящее сообщество
Ivan Okhrimenko
Привет, подскажите, пожалуйста, как правильно проверить на браузер в роутинг модуле (в проекте SSR)?
{
   path: '',
   loadChildren:
     typeof document !== 'undefined' ?
       document.location.hostname === environment.SHORT_DOMAIN ?
         './modules/main/main.module#MainModule' :
         './modules/booking-engine/booking-engine.module#BookingEngineModule' : './modules/main/main.module#MainModule'
 }
, сейчас делаю так, но падает ошибка “document is not defined”
Я думаю, более подходящим местом такой проверки будет какой-нибудь canActive или canLoad
Как раз там ты сможешь прописать такой код
if (isPlatformBrowser(this.platformId)) {
  ...
} else {
  ...
}

isPlatformBrowser и this.platformId - зависимости ангуляра
источник

IO

Ivan Okhrimenko in Angular - русскоговорящее сообщество
Sergey
Я думаю, более подходящим местом такой проверки будет какой-нибудь canActive или canLoad
Как раз там ты сможешь прописать такой код
if (isPlatformBrowser(this.platformId)) {
  ...
} else {
  ...
}

isPlatformBrowser и this.platformId - зависимости ангуляра
спасибо
источник

IO

Ivan Okhrimenko in Angular - русскоговорящее сообщество
Sergey
Я думаю, более подходящим местом такой проверки будет какой-нибудь canActive или canLoad
Как раз там ты сможешь прописать такой код
if (isPlatformBrowser(this.platformId)) {
  ...
} else {
  ...
}

isPlatformBrowser и this.platformId - зависимости ангуляра
а как мне подменить loadChildren на один и тот же path?
источник

S

Sergey in Angular - русскоговорящее сообщество
Ivan Okhrimenko
а как мне подменить loadChildren на один и тот же path?
Хм, может сделать какой-то общий модуль, который будет подгружать необходимый компонент?
источник

IO

Ivan Okhrimenko in Angular - русскоговорящее сообщество
Sergey
Хм, может сделать какой-то общий модуль, который будет подгружать необходимый компонент?
мне нужно проверять домен, если это не тот что задан в конфигах, то подгружать один модуль, а если тот, то грузить мейн модуль
источник

IO

Ivan Okhrimenko in Angular - русскоговорящее сообщество
может можно как то в loadChildren передать не стрингу, а сервис, например, и там сделать такую проверку?
источник

S

Sergey in Angular - русскоговорящее сообщество
Ivan Okhrimenko
может можно как то в loadChildren передать не стрингу, а сервис, например, и там сделать такую проверку?
Есть ещё вариант сделать свою стратегию подгрузки модулей, может поможет
https://coryrylan.com/blog/custom-preloading-and-lazy-loading-strategies-with-angular
источник

DP

Den Politykin in Angular - русскоговорящее сообщество
Добрый день, может кто-нибудь знает как реализовать такое:
по нажатию на кнопку"contact support" я должен открывать предустановленную на компьютер программу по отправке email сообщений.
источник

VS

Vova Soltys in Angular - русскоговорящее сообщество
Den Politykin
Добрый день, может кто-нибудь знает как реализовать такое:
по нажатию на кнопку"contact support" я должен открывать предустановленную на компьютер программу по отправке email сообщений.
Ты про Outlook?
источник

F

Fanaticus Adminus Vu... in Angular - русскоговорящее сообщество
mailto: mail@mail.com
источник

F

Fanaticus Adminus Vu... in Angular - русскоговорящее сообщество
в html
источник

VS

Vova Soltys in Angular - русскоговорящее сообщество
<a href="mailto:one@two.com">
источник

DP

Den Politykin in Angular - русскоговорящее сообщество
понял, сейчас попробую
источник

F

Fanaticus Adminus Vu... in Angular - русскоговорящее сообщество
Vova Soltys
<a href="mailto:one@two.com">
не обязательно оутглюк
источник

F

Fanaticus Adminus Vu... in Angular - русскоговорящее сообщество
Дефолтный клиент маил
источник

DP

Den Politykin in Angular - русскоговорящее сообщество
спасибо большое!! Это - то, что нужно!
источник