我有一个包含以下子组件的组件:
<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()
,但这无济于事。
答案 0 :(得分:3)
您发出字符串"false"
。字符串"false"
是真实的。因此ngIf
仍显示该组件。
使用布尔值表示布尔值,而不是字符串。