дочерний компонент не отображается при использовании активного события маршрутизатора для получения экземпляра дочернего компонента

При использовании router-выхода я использовал событие «active», чтобы взять экземпляр дочернего компонента.

Розетка маршрутизатора будет генерировать событие активации каждый раз, когда создается новый компонент, и событие деактивации, когда он уничтожается.

Пример - https://stackblitz.com/edit/angular-router-basic-example-a9jpsd?file=app/app.component.ts

Пример кода -

App.component.html

<div class="container">
    <router-outlet (activate)="onActivate($event)"></router-outlet>
  </div>

App.component.ts

public onRouterOutletActivate(event : any) {
    console.log(event);
}

Но дочерний компонент не отображается при начальной загрузке, а элемент находится в DOM.

Есть идеи об этой проблеме?


person Kumaresan Sd    schedule 27.01.2020    source источник
comment
Какой дочерний компонент вы имеете в виду ejs-dashboardlayout?   -  person Chellappan வ    schedule 27.01.2020
comment
да ... когда вы вносите какие-то изменения в образец, он будет отображаться   -  person Kumaresan Sd    schedule 27.01.2020


Ответы (1)


Верните логическое значение, которое ищет (активировать):

public onRouterOutletActivate(event : any) {
    if(event){
      console.log(event);
      return true;
    }else{ return false; }
}

А также просто проверьте app.component.html, если вы вызываете ту же функцию onRouterOutletActivate при (активировать):

(activate)="onRouterOutletActivate($event)"

Надеюсь, теперь это сработает для вас !!!

person Swati Gupta    schedule 27.01.2020
comment
stackblitz.com/edit/ мне не повезло - person Kumaresan Sd; 27.01.2020
comment
Существует некоторая проблема с вашим css, из-за которой вы не можете видеть, как вызывается ваш компонент входа в систему. Жестко закодируйте какое-нибудь сообщение в шаблоне login.component, и тогда вы сможете четко увидеть, как оно звонит. - person Swati Gupta; 27.01.2020
comment
извини я не могу понять - person Kumaresan Sd; 27.01.2020
comment
Перейдите на сайт login.component.ts и замените шаблон следующим образом: template: Hello <div> <ejs-dashboardlayout id='defaultLayout' #defaultLayout [panels]='panels' [columns]="5"> </ejs-dashboardlayout> </div> , - person Swati Gupta; 27.01.2020
comment
снова та же проблема stackblitz .com / edit / - person Kumaresan Sd; 27.01.2020
comment
Когда вы проверяете элемент, компоненты входа в систему присутствуют там, что означает, что это не проблема с отображением дочернего компонента через маршрутизатор, но на самом деле есть некоторая проблема с вашей боковой панелью ‹ejs-dashboardLayout› ‹/ejs-dashboardLayout›, которая не позволяет отобразил ваш дочерний компонент. - person Swati Gupta; 27.01.2020
comment
Позвольте нам продолжить это обсуждение в чате. - person Swati Gupta; 27.01.2020