单击多个div但只显示一个类(Angular2)?

时间:2017-09-12 12:00:42

标签: javascript css angular modal-dialog angular2-template

我在角度模式窗口上工作,当我打开模态窗口并在模态窗口外面点击(阴影背景)时,我总是得到错误的div元素类。

示例:我单击模态,然后出现模态类,当我点击阴影背景再次出现模态类时,为什么?另一类应该出现。

以下是代码(打字稿文件):

@ViewChild('ova') ova; //accessing the div via refference tag in html
@HostListener('document:click') onClick($event){
    if (this.show)
    console.log("display event: "+ this.ova.nativeElement.className)

这是相应的.html文件:

<div class="modalall">
      <div *ngIf="closeIt" (click)="close()"n class="modalclose">x</div>
      <div #ova class="modal">
         some text
      </div>
</div>

1 个答案:

答案 0 :(得分:1)

试试这个(在指令中更好):

@HostListener('document:click', ['$event', '$event.target'])
    onClick(event: MouseEvent, targetElement: HTMLElement): void {
        if (!targetElement) {
            return;
        }

        const clickedInside = this.elementRef.nativeElement.contains(targetElement);
        if (!clickedInside) {
            this.clickOutside.emit(event);
        }
    }