Эта проблема
Мне удалось изолировать проблему до линии
outlet2: 'aux-3'
Если мы проверим ссылку, созданную для <a [routerLink]="['/level-0', { outlets: { primary: ['level-1', { outlets: { primary: ['level-2', { outlets: { primary: ['level-3'], outlet2: 'aux-3' } }] } }], outlet1: 'aux-1' } }]">L1-A1/L2/L3-A3</a>
, мы увидим, что она производит
/level-0/(level-1/(level-2/(level-3//outlet2:a/u/x/-/3))//outlet1:aux-1)
Похоже, aux-3
конвертируется в a/u/x/-/3
. чего точно не ожидают. Похоже, буквы были разделены и соединены с /
.
Решение / обходной путь
Как указывалось ранее, похоже, что на выходе маршрутизатора ожидался массив, поэтому простое решение - передать вместо этого массив.
outlet2: ['aux-3']
<a [routerLink]="['/level-0', { outlets: { primary: ['level-1', { outlets: { primary: ['level-2', { outlets: { primary: ['level-3'], outlet2: ['aux-3'] } }] } }], outlet1: ['aux-1'] } }]">L1-A1/L2/L3-A3</a>
Теперь создается правильная ссылка и маршруты работают правильно
Что-то не так с моей маршрутизацией?
Ваши маршруты работают правильно. Но, как вы могли заметить, существует некоторая несогласованность в способе создания ссылок. Я попробовал простую ссылку на маршрутизатор в Этот Stackblitz и выдает ту же ссылку.
<a [routerLink]="['/', { outlets: { outlet1: ['ab'] } }]">Link 1|</a> <br />
<a [routerLink]="['/', { outlets: { outlet1: 'ab' } }]">Link 2</a>
Ниже приведен результат реализации вышеуказанного
a >
Вспомогательные маршруты для модулей с отложенной загрузкой
Простое объяснение проблемы, с которой вы столкнулись, выделено в этом вопросе Именованный выход маршрутизатора и ленивые загруженные модули со ссылкой, приведенной в этом ответе https://stackoverflow.com/a/49367379/13680115 т.е. дополнительные маршруты не поддерживаются из коробки
Вспомогательный модуль с отложенной загрузкой № 10981
В этом сообщении выше, в этом комментарии пользователь выделяет ниже
Кажется, что ленивая загрузка и вспомогательные маршруты не используются широко вместе. Мы можем увидеть много демо, но это все. Как будто никто не использует его в средних / больших приложениях ????
В том же сообщении, похоже, есть обходной путь здесь
Мы создаем вложенный маршрут с родительским маршрутом без компонентов. Я реализовал это в демонстрации ниже, и это работает для модуля с ленивой загрузкой 1-го уровня. Для следующего уровня маршруты правильно сопоставляются без ошибок, но, к сожалению, компонент не загружен, я считаю, что решение состоит в том, чтобы просто переместить один уровень в родительский компонент. Таким образом, один уровень вспомогательных маршрутов загружается в родительский модуль, а другой - в ленивый загружаемый модуль.
< / strong>
person
Owen Kelvin
schedule
14.05.2021