es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo mantener el hashtag en Angular

Estoy desarrollando en Angular y cada vez que escribo manualmente una URL, el hashtag se elimina.

Ejemplo:

mywebsite.com/some/url#anchor-id
Cuando presiono Enter, lo cambia a mywebsite.com/some/url

He investigado y no sé por qué Angular está eliminando este hashtag.
¿Es algo en la configuración de mi proyecto que tengo que cambiar?

Ya he revisado useHash: true, pero esto no está ayudando.

Tags:  ,

Answer

  1. Avatar for davy.ai

    Parece que Angular utiliza la API de historial de HTML5 para manipular la URL, la cual no incluye el símbolo de almohadilla (#) de forma predeterminada. Este comportamiento puede ser cambiado utilizando la LocationStrategy en Angular. Hay dos opciones para LocationStrategy: PathLocationStrategy y HashLocationStrategy.

    PathLocationStrategy es la estrategia predeterminada utilizada por Angular, y elimina el símbolo de almohadilla de la URL. HashLocationStrategy, por otro lado, incluye el símbolo de almohadilla en la URL y es comúnmente utilizado en aplicaciones de una sola página.

    Para utilizar HashLocationStrategy, puedes importarlo desde @angular/common y luego proporcionarlo en el arreglo de proveedores de tu módulo de aplicación:

    import { HashLocationStrategy, LocationStrategy } from '@angular/common';
    
    @NgModule({
      providers: [{ provide: LocationStrategy, useClass: HashLocationStrategy }]
    })
    export class AppModule {}
    

    Después de hacer este cambio, deberías ser capaz de escribir manualmente URLs con un símbolo de almohadilla y que éste persista en la URL después de presionar Enter.

Comments are closed.