2016-07-20 5 views
7

mam kod w moim rozwiązanie, które dostaje baseHref z aplikacjikątowa podstawa 2 dostęp href

constructor(private router: Router) { 
    let baseHref = this.router._location._baseHref; 

Można zobaczyć, co ja dostaję go za pośrednictwem prywatnych posesji. Czy istnieje inny sposób uzyskania adresu URL bazy? aka adres URL przed dodaniem routera do części?

Używam angular2 RC4

Dzięki

Odpowiedz

14

Klasa Location ma prepareExternalUrl() że trwa base href pod uwagę.

Można również próbować wstrzykiwać constructor(@Inject(APP_BASE_HREF) href:string)

Wydaje APP_BASE_HREF nie można wstrzykiwać już bez wyraźnie dostarczenie go.

PlatformLocation zawiera więcej szczegółów na temat URL:

import {PlatformLocation } from '@angular/common'; 

    constructor(platformLocation: PlatformLocation) { 
    console.log((platformLocation as any).location); 
    console.log((platformLocation as any).location.href); 
    console.log((platformLocation as any).location.origin); 
    } 

Plunker example

+3

Awesome! location.prepareExternalUrl ("") właśnie sprawił, że mój dzień był trochę lepszy. –

+0

Cytując dokumenty: "Ta klasa nie powinna być używana bezpośrednio przez programistę aplikacji. Zamiast tego użyj lokalizacji" –

+0

@AmrMostafa co doktoranci, jaka klasa? –