Вложенный маршрут немедленно исчезает вместо воспроизведения анимации :leave

У меня есть внешние маршруты: /posts и /about. Маршрут /posts имеет вложенные маршруты: / и /pages/:pageNumber.

При навигации между вложенными маршрутами (/ и /pages/:pageNumber) анимации работают хорошо. Но при переходе на /about вложенный маршрут сразу пропадает.

animateChild() не помогает. В анимации компонента родительского маршрутизатора:

transition(':leave', [
  query('@*', animateChild()),
  animate('/*some easing*/', style({/*some styles*/}))
])

Это вызывает ошибку query("@*") returned zero elements.. Таким образом, вложенный маршрут удаляется немедленно, родительский компонент не может его видеть.

Угловая версия: 4.2.2


person GProst    schedule 13.06.2017    source источник
comment
Искал по всему интернету решение этой проблемы. Казалось бы, это должно быть обычным явлением.   -  person daleyjem    schedule 08.11.2017


Ответы (1)


Для меня причиной проблемы было то, что при переходе с /page1 на /page2 в page2.component.ts я загружал некоторые данные с сервера в конструкторе. Перемещение этого кода в ngOnInit решило эту проблему после 2 недель ломания головы.

person Luis Araujo    schedule 02.12.2019