Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

201
Visualizações
Propagación de parada de evento Angular 8+

Tengo un elemento viewChild que muestro/escondo al asignarle un valor booleano.

 <div #acc class="user-info" [ngClass]="{'showDropdown': accountDropdownService.userDropdownIsVisible}"> <div class="user-name"> <div class="color-1 full-name">{{userdata.FirstName}} {{userdata.LastName}}</div> <div class="opened-eye-icon color-6__fm icon-icon_visible_off" [class]="balanceService.showBalance ? 'icon-icon_visible_off' : 'icon-icon_visible'" (click)="balanceService.toggleBalanceVisibility()"></div> </div> <div class="user-id color-6__fm">{{'General.Id'}}: <span><strong>{{userdata.Id}}</strong></span></div> </div>

y su archivo .ts

 @ViewChild('acc') public acc: ElementRef; this.renderer.listen('window', 'click', (e: Event) => { if (e.target !== this.acc.nativeElement) { console.log('outside'); console.log(e.target); } });

Necesito ocultar el elemento viewChild cuando hago clic fuera de él, pero cuando hago clic en sus elementos secundarios, como el nombre de usuario o la identificación del usuario, también se entiende como un clic externo.

¿Cómo puedo evitar esto cuando hago clic en los elementos secundarios de div?

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Desea asegurarse de que el objetivo no sea un descendiente del contenedor, no solo el contenedor en sí. Debería usar contains() en su lugar.

 this.renderer.listen('window', 'click', (e: Event) => { if (!this.acc.nativeElement.contains(e.target)) { console.log('outside'); console.log(e.target); } });

De lo contrario, querrá detener la propagación en los controladores de eventos de clic para los niños, de esa manera esta ventana de escucha no verá el evento. Pero eso podría ser más trabajo para ti de lo necesario.

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda