检查路由器插座是否在使用中

Dan*_*ahn 6 angular2-routing angular

所有,

*ngIf如果router-outlet某个组件具有组件,我想使用它来删除页面的一部分。

我尝试搜索ActivatedRouteRouter,但是似乎无法弄清楚。您如何检查特定商品router-outlet是否正在使用?

mar*_*its 10

可以这样解决:

<div [hidden]="!myOutlet.isActivated">
  <router-outlet name="my-outlet" #myOutlet="outlet"></router-outlet>
</div>
Run Code Online (Sandbox Code Playgroud)

无需更改组件类。


Dan*_*ahn 5

我明白了这一点。您需要使用路由器插座的事件。但是,您不能使用ngIf,因为除非出口位于 dom 中,否则事件不会被触发。

ts

showOutlet: boolean;

onActivate(event : any) {
  this.showOutlet = true;
}

onDeactivate(event : any) {
  this.showOutlet = false;
}
Run Code Online (Sandbox Code Playgroud)

html

<div [hidden]="!showOutlet">
  <router-outlet name="my-outlet"
      (activate)="onActivate($event)"
      (deactivate)="onDeactivate($event)"></router-outlet>
</div>
Run Code Online (Sandbox Code Playgroud)