【发布时间】:2019-03-09 13:59:35
【问题描述】:
我正在尝试在单击图像时创建图像模式。我已经设置了它,以便在单击图像时加载子组件。问题是它只能点击一次,关闭后设置display: none。
可以通过点击子组件中的关闭按钮来关闭它。但我只设法在 CSS 中使用 display: none 做到这一点,使组件不可见但仍处于活动状态。
我最终想要的是一种在按下关闭按钮时卸载该子组件的方法。或者在再次点击父级中的图片时设置opacity: 1。
HTML 父级:
<app-image-modal
*ngIf="clicked"
[slice] = "slice"
[clicked] = "clicked">
</app-image-modal>
<img src"img.png" (click)="imageClicked()"/>
TS 家长:
export class ImageComponent {
public clicked = false;
public imageClicked() {
this.clicked = true;
}
}
HTML 子级:
<section [ngClass]="{'hide': hide}">
<div [ngClass]="{'active': show}">
<img src"img.png" />
<div class="close" (click)="hideModal()">
<button>X</button>
</div>
</div>
</section>
TS 孩子:
export class ImageModalComponent implements OnInit {
public show = false;
public hide = false;
@Input() clicked: boolean;
public ngOnInit() {
this.show = true;
}
public hideModal() {
this.show = false;
this.hide = true;
}
}
【问题讨论】:
标签: angular typescript frontend angular6 angular-components