Как стать автором
Обновить
8
0
Дмитрий Пурис @Reactiver

Senior Frontend Developer

Отправить сообщение

Очень классный набор статей. Спасибо, что поделился информацией. От таких статей появляется желание и самому что-то сделать)

Хорошая альтернатива. Я рассматривал такой вариант, но решил сделать как в статье.

Тут остается такая же проблема со сменой урла с /home(dialog:login) на /home при закрытии диалога. Ее в любом случае надо как-то решать. Было бы интересно узнать ваш способ. Иначе, если не менять урл, то при закрытии диалога урл остается таким же /home(dialog:login) и при перезагрузке страницы будет открыт диалог. А это не совсем то, что ожидает пользователь.

При том не нужны никакие костыли в виде backUrl и т.п.

вычисление backUrl - это детали реализации, которые не нужны при конфигурировании роутинга

В итоге конфиг роутера получается таким(реальный пример)

// роутинг модуль
const routes: Routes = [
  {
    path: 'page',
	component: PageComponent,
	children: [
  	  tuiGenerateDialogableRoute(DialogContentComponent, 'path/to/dialog')
	]
  }
]

Программисту, кто пишет такую конфигурацию, не надо задумываться о возвращении назад.

В вашем варианте через именованные аутлеты удобно, что можно в корне приложения один раз разместить <router-outlet name="dialog"> и не добавлять в каждую страницу — это плюс!

Здорово, что пришли к одинаковому решению!

В статье я чуть упростил интерфейс функции, у нас он еще принимает конфиг по диалогу.
Но вот резолверы и гварды, к сожалению, нет. Предложение 100% валидное. Я добавлю поддержку интерфейса Route в следующей версии.

Спасибо за наводку!

Очень классная статья. Хотелось бы побольше таких примеров с хардкорным ангуляром)
Все доклады максимально интересные. Жаль не способности остановить время и побывать в живую на всех докладах)

Информация

В рейтинге
5 109-й
Откуда
Yerevan, Yerevan, Армения
Работает в
Зарегистрирован
Активность

Специализация

Frontend Developer
Senior
JavaScript
Angular
TypeScript
Git
HTML
CSS
Jest
Cypress
React
Docker