можно отключить с дочерними маршрутами не работает - PullRequest
0 голосов
/ 06 декабря 2018

У меня есть маршрутизация, как показано ниже:

{
  path: "home",
  children: [{
    path: "dashboard",
    children: [{
      path: "user",
      canDeactivate: [CanWeDeactivateThis]
    }]
  }]
}

В маршрутах определены компоненты, выше приведен простой снимок.Я получаю компонент, как ноль, когда я добавляю, может деактивировать в пути пользователя, но если я добавляю его в путь панели мониторинга, он работает хорошоДобавление в панель управления не работает для меня, так как у меня есть несколько дочерних элементов в панели управления, и мне нужно показать подтверждение, если пользователь также переходит к ним.

Не уверен, как решить эту проблему.

Угловая версия 6.1.0

Я следил в этой теме , но без помощи.

Может кто-нибудь помочь, пожалуйста?

Кстати, вышеопределения маршрутизации являются частью лениво загруженного углового модуля.

1 Ответ

0 голосов
/ 06 декабря 2018
{
  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.

...