2014-07-05 13 views
8

Ich versuche AngularJS $anchorScroll mit $location.hash zu verwenden. Wenn ich jedoch den Hashwert festlege, fügt AngularJS einen Schrägstrich (/) hinzu.AngularJS setzt Schrägstrich/nach Hash-Tag

Zum Beispiel ist die URL: http://localhost:13060/Dashboard. Wenn ich die AngularJS-Bibliothek nicht einschließe, kann ich auf den Link #contact klicken und zu http://localhost:13060/Dashboard#contact gehen.

Aber wenn ich AngularJS und klicken Sie auf den Link, geht es zu http://localhost:13060/Dashboard#/contact verhindert $ AnkerScroll von der Arbeit.

bearbeiten $ anchorScroll nicht funktioniert

Ausgangs URL ist http://localhost:13060/Category. Wenn ich eine Kategorie hinzufüge, sollte sie zu http://localhost:13060/Category#/#id gehen (wo id die neue ID ist) und die Seite runterscrollen. Die URL wird korrekt aktualisiert, aber $ anchorScroll scrollt nicht.

//jump to new category 
$location.path(""); 
$location.hash(cat.ID); 
$anchorScroll(); 

Antwort

5

Sofern Sie html5mode verwenden, die den Hash aus Winkel Routing entfernt, werden Sie 2 Hashes, eine für Winkel Routing und andere für Anker.

http://localhost:13060/Dashboard#/#contact

Vorausgesetzt, dass Sie eine Route Pfad gesetzt hatte als /profiles und Anker war in dieser Ansicht würde die URL wie folgt aussehen:

http://localhost:13060/Dashboard#/profiles#contact

+0

ich die URL jetzt richtig formatiert haben, aber $ anchorScroll () scrollt nicht auf die Seite herunter. –

+0

Ich werde ehrlich sein, ich habe noch nie Ankerscroll verwendet. Liefert '$ location.hash()' was Sie erwarten würden (der zweite Hash)? – charlietfl

+0

Ja, es aktualisiert den Hash korrekt (wenn ich den Pfad angeben), aber dann passiert nichts anderes als die URL-Browserleiste, die die Änderung widerspiegelt. –