【发布时间】:2019-04-26 12:21:22
【问题描述】:
我有一个包含以下子组件的组件:
<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() 但这没有帮助。
【问题讨论】:
-
贴出相关代码。它有一个错误。
-
您应该添加代码和说明 displayFullScreen 设置为 false 的位置。在涉及变更检测周期时,这是可以帮助您的重要信息
-
@ivissani 我已经添加了您要求的代码。如果您需要更多,请告诉我。谢谢。
标签: angular angular-ng-if