【问题标题】:child component not get display while using router-outlet active event to get child component instance使用路由器插座活动事件获取子组件实例时子组件未显示
【发布时间】:2020-05-12 11:34:09
【问题描述】:

在使用路由器插座时,我使用“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 中。

对这个问题有任何想法吗?

【问题讨论】:

  • 你的意思是 ejs-dashboardlayout 哪个子组件?
  • 是的..当您对样本进行一些更改时,它将显示出来

标签: html angular angular8 router-outlet angular-cli-v8


【解决方案1】:

返回 (activate) 正在寻找的布尔值:

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

如果您在 (activate) 上调用相同的 onRouterOutletActivate 函数,也只需检查 app.component.html:

(activate)="onRouterOutletActivate($event)"

希望它现在对你有用!!!

【讨论】:

  • stackblitz.com/edit/… 我运气不好
  • 您的 css 存在一些问题,因此您无法看到您的登录组件调用。在您的 login.component 模板中硬编码一些消息,然后您可以清楚地看到它的调用。
  • 对不起,我听不懂
  • 转到 login.component.ts 并将模板替换为以下内容:模板:Hello &lt;div&gt; &lt;ejs-dashboardlayout id='defaultLayout' #defaultLayout [panels]='panels' [columns]="5"&gt; &lt;/ejs-dashboardlayout&gt; &lt;/div&gt; ,
  • 又是同样的问题stackblitz.com/edit/…
猜你喜欢
  • 2017-05-29
  • 2016-08-02
  • 2017-07-02
  • 1970-01-01
  • 2019-05-01
  • 2023-02-02
  • 2018-01-07
  • 2019-01-05
  • 1970-01-01
相关资源
最近更新 更多