После часов, потраченных на отладку проблемы, я нашел точную ситуацию, когда это происходит, а когда нет, но я не мог понять, почему. Я также попытался создать простой пример на GitHub в пустом проекте, но мне не удалось воспроизвести проблему.
Так что здесь у нас go,
У меня есть компонент, использующий PrimeNg Ползунок для изменения громкости на моем AudioComponent, расположенном на /audio
. Этот слайдер находится внутри Fieldset . Я поместил идентичный ползунок за пределы Fieldset.
<p-fieldset legend="Audio">
<p-slider [(ngModel)]="value"></p-slider>
</p-fieldset>
<p-slider [(ngModel)]="value"></p-slider>
Когда я перенаправляю с любой страницы на /audio
через свой компонент меню, он не отображает ползунок внутри Fieldset, но он отображает тот, который находится снаружи.
Для перенаправления я использую
this.router.navigate([`audio`]);
Однако, когда я перезагружаю страницу, все ползунки отображаются.
Я попытался поставить <a href="/audio">Audio</a>
на мою домашнюю страницу. Нажатие на это займет немного больше времени, чем перенаправление с router.navigate, но оно всегда рендерит все ползунки.
У кого-нибудь есть идеи, почему перенаправление с router.navigate не отрендерит компонент Slider внутри Fieldset?
Аудио компонент является частью AudioModule, который маршрутизируется в AppRoutingModule следующим образом:
{
path: 'audio',
canActivate: [AuthGuard],
loadChildren: () => import('./modules/audio/audio.module').then(m => m.AudioModule)
}