2016-10-03 1 views
0

In IIS wird meine Webanwendung in einer Anwendung unter der Website ausgeführt. Anstatt also unter www.example.com erreichbar zu sein, ist es tatsächlich bei www.example.com/somepath/.So erhalten Sie einen Pfad vor # in einem Winkel

Wenn ich window.location.pathname benutze, kann ich meine Hände auf den /somepath/ Teil bekommen, aber mit Angulars $location.path() bekomme ich nichts. Aus der offiziellen Dokumentation scheint es, dass $location.path() nur bekommen sollte, was nach dem Hash kommt, z.B. www.example.com/somepath/#/nextbit wird mir /nextbit geben.

Also, wie bekomme ich die Hände auf den tatsächlichen Pfad, wo die Website gehostet wird?

+0

Mögliche Duplikat bekommen [ Holen Sie sich die aktuelle URL im Webbrowser] (http://stackoverflow.com/questions/1034621/get-current-url-in-web-browser) – Ryan

+0

'absUrl' ist das, was Sie brauchen. – Casey

+0

@Ryan Nein, das ist anders. Ich suche nicht nach der vollständigen URL (dann wäre absUrl die vollständige Antwort). Dies betrifft insbesondere den Pfad der Site, nicht die Seite. In meinem Beispiel ist es das Ziel, '/ somepath /' zu erhalten, während location.href den vollständigen Pfad angibt. –

Antwort

2

Wie Sie es mit Angular $location Dienst tun wollen, versuchen Sie dies:

var baseUrl = $location.absUrl().replace('#/' + $location.url(), ''); 

absUrl() wird die gesamte URL erhalten, während url() den Teil der URL nach #/

0

Da die Informationen, die vor dem Hash kommen, für Angulars interne Abläufe nicht als höchst relevant angesehen werden, wäre eine Umgehung der internen Methode von Angular ($location) in diesem Fall keine schlechte Praxis.

Ich würde mit Ihrer ursprünglichen Annahme gehen, da es immer noch funktioniert:

location.pathname 

Es sei denn, Sie über die Bindungen besorgt sind innerhalb von Angular zu vor abgefeuert zu haben, diesen Weg bekommen (die ein nicht haben sollten, Auswirkungen auf einen statischen IIS-Anwendungspfad), sollte dies in Ordnung sein.

+0

Es ist besser, $ location zu verwenden, wenn Sie jemals beabsichtigen, irgendwelche Tests zu schreiben. – Casey

Verwandte Themen