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

460
Visualizações
Enrutamiento Angular2 con Hashtag para ancla de página

Deseo agregar algunos enlaces en mi página Angular2, que al hacer clic, saltarán a posiciones específicas dentro de esa página, como lo hacen los hashtags normales. Así que los enlaces serían algo así como

 /users/123#userInfo /users/123#userPhoto /users/123#userLikes

etc.

No creo que necesite HashLocationStrategy, ya que estoy bien con la forma normal de Angular2, pero si agrego directamente, el enlace en realidad saltaría a la raíz, no a algún lugar en la misma página. Cualquier dirección es apreciada, gracias.

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

0

Actualizar

Esto ahora es compatible

 <a [routerLink]="['somepath']" fragment="Test">Jump to 'Test' anchor </a>
 this._router.navigate( ['/somepath', id ], {fragment: 'test'});

Agregue el siguiente código a su componente para desplazarse

 import {ActivatedRoute} from '@angular/router'; // <-- do not forget to import private fragment: string; constructor(private route: ActivatedRoute) { } ngOnInit() { this.route.fragment.subscribe(fragment => { this.fragment = fragment; }); } ngAfterViewInit(): void { try { document.querySelector('#' + this.fragment).scrollIntoView(); } catch (e) { } }

Original

Este es un problema conocido y rastreado en https://github.com/angular/angular/issues/6595

over 4 years ago · Santiago Trujillo Relatório

0

Lo siento por responder un poco tarde; Hay una función predefinida en la documentación de enrutamiento angular que nos ayuda a enrutar con un hashtag al ancla de la página, es decir, AnchorScrolling: 'habilitado'

Paso 1:- Primero importe el RouterModule en el archivo app.module.ts:-

 imports:[ BrowserModule, FormsModule, RouterModule.forRoot(routes,{ anchorScrolling: 'enabled' }) ],

Paso 2: - Vaya a la página HTML, cree la navegación y agregue dos atributos importantes como [routerLink] y fragmento para hacer coincidir las ID de Div respectivas: -

 <ul> <li> <a [routerLink] = "['/']" fragment="home"> Home </a></li> <li> <a [routerLink] = "['/']" fragment="about"> About Us </a></li> <li> <a [routerLink] = "['/']" fragment="contact"> Contact Us </a></li> </ul>

Paso 3:- Cree una sección/div haciendo coincidir el nombre de ID con el fragmento :-

 <section id="home" class="home-section"> <h2> HOME SECTION </h2> </section> <section id="about" class="about-section"> <h2> ABOUT US SECTION </h2> </section> <section id="contact" class="contact-section"> <h2> CONTACT US SECTION </h2> </section>

Para su referencia, he agregado el siguiente ejemplo creando una pequeña demostración que ayuda a resolver su problema.

Demostración: https://routing-hashtag-page-anchors.stackblitz.io/

over 4 years ago · Santiago Trujillo Relatório

0

Aunque la respuesta de Günter es correcta, no cubre la parte de la etiqueta de anclaje "saltar a" .

Por lo tanto, además de:

 <a [routerLink]="['somepath']" fragment="Test">Jump to 'Test' anchor </a>
 this._router.navigate( ['/somepath', id ], {fragment: 'test'});

... en el componente (principal) donde necesita un comportamiento de "saltar a", agregue:

 import { Router, NavigationEnd } from '@angular/router'; class MyAppComponent { constructor(router: Router) { router.events.subscribe(s => { if (s instanceof NavigationEnd) { const tree = router.parseUrl(router.url); if (tree.fragment) { const element = document.querySelector("#" + tree.fragment); if (element) { element.scrollIntoView(true); } } } }); } }

¡ Tenga en cuenta que se trata de una solución ! Siga este problema de github para futuras actualizaciones. ¡Créditos a Victor Savkin por proporcionar la solución!

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