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

488
Visualizações
Enlace pasivo en Angular 2 - <a href=""> equivalente

En Angular 1.x puedo hacer lo siguiente para crear un enlace que básicamente no hace nada:

 <a href="">My Link</a>

Pero la misma etiqueta navega a la base de la aplicación en Angular 2. ¿Cuál es el equivalente de eso en Angular 2?

Editar: parece un error en el enrutador Angular 2 y ahora hay un problema abierto en github al respecto.

Estoy buscando una solución lista para usar o una confirmación de que no habrá ninguna.

over 4 years ago · Santiago Trujillo
3 Respostas
Responde à pergunta

0

Si tiene Angular 5 o superior, simplemente cambie

 <a href="" (click)="passTheSalt()">Click me</a>

en

 <a [routerLink]="" (click)="passTheSalt()">Click me</a>

Se mostrará un enlace con un icono de mano al pasar el cursor sobre él y hacer clic en él no activará ninguna ruta.

Nota: si desea mantener los parámetros de consulta, debe configurar la opción queryParamsHandling para preserve :

 <a [routerLink]="" queryParamsHandling="preserve" (click)="passTheSalt()">Click me</a>
over 4 years ago · Santiago Trujillo Relatório

0

Eso será lo mismo, no tiene nada relacionado con angular2 . Es una simple etiqueta html.

Básicamente, a etiqueta (anclaje) será procesada por el analizador HTML.

Editar

Puede deshabilitar ese href al tener javascript:void(0) en él para que no suceda nada. (Pero es un truco). Sé que Angular 1 proporcionó esta funcionalidad lista para usar, lo que ahora no me parece correcto.

 <a href="javascript:void(0)" >Test</a>

Plunkr


La otra forma podría ser usar la directiva routerLink con pasar el valor "" que eventualmente generará href="" en blanco

 <a routerLink="" (click)="passTheSalt()">Click me</a>
over 4 years ago · Santiago Trujillo Relatório

0

Hay formas de hacerlo con angular2, pero no estoy de acuerdo en que esto sea un error. No estoy familiarizado con angular1, pero parece un comportamiento realmente incorrecto, aunque, como usted afirma, es útil en algunos casos, pero claramente este no debería ser el comportamiento predeterminado de ningún marco.

Dejando a un lado los desacuerdos, puede escribir una directiva simple que tome todos sus enlaces y verifique el contenido de href y si la longitud es 0, ejecute preventDefault() , aquí hay un pequeño ejemplo.

 @Directive({ selector : '[href]', host : { '(click)' : 'preventDefault($event)' } }) class MyInhertLink { @Input() href; preventDefault(event) { if(this.href.length == 0) event.preventDefault(); } }

Puede hacer que funcione en su aplicación agregando esta directiva en PLATFORM_DIRECTIVES

 bootstrap(App, [provide(PLATFORM_DIRECTIVES, {useValue: MyInhertLink, multi: true})]);

Aquí hay un plnkr con un ejemplo de trabajo.

over 4 years ago · Santiago Trujillo 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