Хорошая альтернатива. Я рассматривал такой вариант, но решил сделать как в статье.
Тут остается такая же проблема со сменой урла с /home(dialog:login) на /home при закрытии диалога. Ее в любом случае надо как-то решать. Было бы интересно узнать ваш способ. Иначе, если не менять урл, то при закрытии диалога урл остается таким же /home(dialog:login) и при перезагрузке страницы будет открыт диалог. А это не совсем то, что ожидает пользователь.
При том не нужны никакие костыли в виде backUrl и т.п.
вычисление backUrl - это детали реализации, которые не нужны при конфигурировании роутинга
Программисту, кто пишет такую конфигурацию, не надо задумываться о возвращении назад.
В вашем варианте через именованные аутлеты удобно, что можно в корне приложения один раз разместить <router-outlet name="dialog"> и не добавлять в каждую страницу — это плюс!
В статье я чуть упростил интерфейс функции, у нас он еще принимает конфиг по диалогу. Но вот резолверы и гварды, к сожалению, нет. Предложение 100% валидное. Я добавлю поддержку интерфейса Route в следующей версии.
Очень классный набор статей. Спасибо, что поделился информацией. От таких статей появляется желание и самому что-то сделать)
Хорошая альтернатива. Я рассматривал такой вариант, но решил сделать как в статье.
Тут остается такая же проблема со сменой урла с
/home(dialog:login)
на/home
при закрытии диалога. Ее в любом случае надо как-то решать. Было бы интересно узнать ваш способ. Иначе, если не менять урл, то при закрытии диалога урл остается таким же/home(dialog:login)
и при перезагрузке страницы будет открыт диалог. А это не совсем то, что ожидает пользователь.вычисление
backUrl
- это детали реализации, которые не нужны при конфигурировании роутингаВ итоге конфиг роутера получается таким(реальный пример)
Программисту, кто пишет такую конфигурацию, не надо задумываться о возвращении назад.
В вашем варианте через именованные аутлеты удобно, что можно в корне приложения один раз разместить
<router-outlet name="dialog">
и не добавлять в каждую страницу — это плюс!Здорово, что пришли к одинаковому решению!
В статье я чуть упростил интерфейс функции, у нас он еще принимает конфиг по диалогу.
Но вот резолверы и гварды, к сожалению, нет. Предложение 100% валидное. Я добавлю поддержку интерфейса
Route
в следующей версии.Спасибо за наводку!