*ngIf 为 false 时组件不会被销毁

Component doesn't get destroyed when *ngIf is false

我有一个包含以下子组件的组件:

<app-fullscreen *ngIf="displayFullscreen" [images]="images" [selected]="selected" 
(fullscreenChange)="closeFullscreen($event)"></app-fullscreen>

当有人点击我的其中一张图片时,将调用此方法:

openFullscreen(images: any, img: any) {
 this.images = images;
 this.selected = img;
 this.displayFullscreen = true;
}

现在显示组件。一旦 displayFullscreen 再次设置为 false,app-fullscreen 组件就不会被销毁。我在 DOM:

中注意到了这一点

所以它检测到 ngIf 现在是假的,但它没有做任何事情。如何让组件消失?

编辑:有关我如何将 displayFullscreen 设置为 false 的信息。

app-fullscreen 子组件中,我发出一个值为 "false" 的事件:

closeFullscreen(){
  this.fullscreenChange.emit("false");
}

事件发出时,父组件调用此方法:

closeFullscreen(event: any){
  this.displayFullscreen = event;
  this.cd.detectChanges();
}

如您所见,我什至尝试致电 detectChanges(),但没有帮助。

您发出字符串 "false"。字符串 "false" 是真实的。所以 ngIf 仍然显示组件。

对布尔值使用布尔值,而不是字符串。