Можно деактивировать с неработающими дочерними маршрутами
У меня есть маршрутизация, как показано ниже:
{
path: "home",
children: [{
path: "dashboard",
children: [{
path: "user",
canDeactivate: [CanWeDeactivateThis]
}]
}]
}
В маршрутах определены компоненты, выше приведен простой снимок. Я получаю компонент, как ноль, когда я добавляю, может деактивировать в пути пользователя, но если я добавляю его в путь панели мониторинга, он работает хорошо Добавление в панель управления не работает для меня, так как у меня есть несколько дочерних элементов в панели управления, и мне нужно показать подтверждение, если пользователь также переходит к ним.
Не уверен, как решить эту проблему.
Угловая версия 6.1.0
Я следил за этой веткой, но без помощи.
Кто-нибудь может помочь, пожалуйста?
Кстати, приведенные выше определения маршрутизации являются частью лениво загруженного углового модуля.
1 ответ
{
path: "home",
children: [{
path: "dashboard",
children: [{
path: "user",
component : "user",
canDeactivate: [CanWeDeactivateThis]
}]
}]
}
Вы должны добавить имя компонента для детей. Вы также можете попробовать приведенный ниже код, если хотите применить метод canDeactivate ко всем дочерним элементам.
{
path: "home",
children: [{
path: "dashboard",
canDeactivate: [CanWeDeactivateThis],
children: [{
path: "user",
component : "user"
}]
}]
}
Если функциональный модуль загружается асинхронно, защита CanLoad проверяется перед загрузкой модуля. Если какой-либо охранник возвращает ложь, незавершенные охранники будут отменены, а вся навигация отменена. Так что проверьте, есть ли у вас охранник CanLoad.