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

406
Visualizações
Angular: la tubería que transforma el texto para crear elementos de hipervínculo con detener la propagación no funciona

Quiero tener algo que encuentre direcciones URL en el texto y que se pueda hacer clic en ellas. Entonces, para lograr esto, he creado una tubería personalizada:

 @Pipe({ name: 'urlify' }) export class UrlifyPipe implements PipeTransform { transform(text: any): any { const urlRegex = /(\b(https?|ftp|file):\/\/[-AZ\d+&@#/%?=~_|!:,.;]*[-AZ\d+&@#/%=~_|])/ig; return text.replace(urlRegex, (url) => { return '<a href="' + url + '">' + url + '</a>'; }); } }

Y eso funciona como se esperaba cuando lo uso junto con <div [innerHtml]="someText | urlify">

Pero el problema es que, en algunos casos, se puede hacer clic en el div envolvente, por lo que tengo que detener la propagación y prevenir el valor predeterminado en el elemento <a> .

Así que he creado una directiva para eso:

 @Directive({ selector: '[sfStopPropagation]' }) export class StopPropagationDirective { @HostListener("click", ["$event"]) public onClick(event: any): void { event.preventDefault(); event.stopPropagation(); } }

Y luego use esto en la tubería return '<a sfStopPropagation href="' + url + '">' + url + '</a>';

El problema es que no funciona en absoluto. Incluso intenté crear un método en el archivo de canalización y llamarlo al hacer clic en el elemento, pero tampoco funciona (lo mismo con ${ } ):

ingrese la descripción de la imagen aquí

Y este es un ejemplo donde lo estoy usando:

ingrese la descripción de la imagen aquí

¿Alguien me puede ayudar?

about 4 years ago · Juan Pablo Isaza
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