Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

475
Vistas
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 Respuestas
Responde la pregunta

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 Denunciar

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 Denunciar

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 Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda