Estaba trabajando en mi sitio web y tuve que hacer una solicitud a la API mientras creaba una instancia de servicios root
.
Quería obtener algunos datos basados en la URL, así que hice lo siguiente
@Injectable({ providedIn: 'root', }) export class MyService { constructor(private _router: Router) { this.init() } init() { console.log('url', this._router.url, window.location.href) // this._router.url : `/` // window.location.href : `http://localhost:4201/my/url` // Here I'll make some get request with the url } }
Pero veo que el enrutador aún no tiene el valor correcto, o al menos, no todo el tiempo.
Curiosamente, a veces funciona.
¿Qué debo hacer para poder obtener la ubicación sin usar el objeto window
?
window.location.href define la ubicación del DOM, mientras que router.url se basa en basehref. Compruebe basehref y RouterModule.forRoot([])
Básicamente, usa Angular Router para enrutar entre páginas dentro de su aplicación, y para cada ruta externa debe usar window.location/href (html).
Como se responde aquí https://stackoverflow.com/a/72514835/12677894
window.location.href define la ubicación DOM, mientras que router.url se basa en basehref *