Wie kann ich ng-hide verwenden, wenn $ location.url == base (root) url?

8

Ich möchte, dass auf jeder Seite meiner Angular-App außer der Startseite ein ← Zurück nach Hause -Link unterhalb der Navigation erscheint. Also möchte ich den Link bedingt hinzufügen und ihn mit ng-hide ausblenden, wenn die URL bereits auf der Homepage (Ansicht) der App ist.

Ich habe versucht, angular's $location -Dienst ohne Erfolg zu verwenden

%Vor%

Ich habe die folgenden Varianten ausprobiert:

%Vor%

Ich bin verwirrt, denn wenn ich den Wert von location.hash == '#/' auf der Homepage protokolliere, bekomme ich true , also sollte ng-hide funktionieren.

Im Grunde versuche ich den dritten Ansatz, der hier aufgelistet ist: Wie verwende ich angular ng-hide basierend auf der Seite / Route, auf der ich mich gerade befinde? Aber es funktioniert nicht. Die anderen beiden Ansätze auf dieser Seite scheinen zu kompliziert für das zu sein, was ich erreichen möchte.

Was vermisse ich?

    
Tyler 24.07.2014, 20:33
quelle

2 Antworten

18

Als Erstes, wenn Sie location.hash oder location.url verwenden, verwenden Sie das JavaScript-Objekt window.location. Sie sollten den von angular bereitgestellten Dienst $ location verwenden. Also in Ihrem Controller würde ich erstellen:

%Vor%

Und in Ihrem html:

%Vor%

Tho würde ich vorsichtig sein über die "# /" und "/", ich benutze nur den HTML5-Modus, so dass ich nicht sicher bin, was der $ location.path zurückgibt, aber Sie können es einfach mit einer console.log überprüfen ($ location.path ()) tho Ich denke, es wird nur "/" zurückgeben, denn das ist der Pfad für eckig, es sollte sich nicht um das # kümmern.

    
Adrian Neatu 24.07.2014, 21:01
quelle
0

Angular sucht nach einer $scope -Variablen namens location . Wenn Sie möchten, dass dies funktioniert, müssen Sie Folgendes tun:

%Vor%

in Ihrem Controller. Aber dann solltest du wirklich $location einfügen und $scope.location = $location

setzen     
dave 24.07.2014 20:58
quelle

Tags und Links