Как найти связь между целью события Hostlistener с ElementRef? - PullRequest
1 голос
/ 19 апреля 2020

Мне нужно знать, что получатели цели клика являются дочерними для моего element из viewChild или вне его. Можно ли это найти?

Я не получаю решения.

вот код:

import { Component, ViewChild, HostListener, ElementRef } from '@angular/core';

@Component({
  selector: 'my-app',
  templateUrl: './app.component.html',
  styleUrls: [ './app.component.css' ]
})
export class AppComponent  {

 @ViewChild('child') element:ElementRef;

 @HostListener('document:click', ['$event.target']) onClick(event) {
      const parent = this.element.nativeElement;

      if(event is childOf(parent)) {
        //
      } else {
        //
      }

     console.log(parent, event);
  }

  name = 'Angular';

}

Как этого добиться? Live Demo

Кто-нибудь, помогите мне, пожалуйста?

Ответы [ 2 ]

1 голос
/ 19 апреля 2020

Node.contains () метод должен быть тем, что вы ищете.

if(parent.contains(event)) {
  console.log('child')
} else {
  console.log('not a child')
}

Forked Stackblitz

0 голосов
/ 19 апреля 2020

пожалуйста, попробуйте использовать этот подход

if (document.getElementById('idOfParentElement').contains(event.target)) {
// do something
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...