2013-09-16 12 views
17

Nach dem Lesen und Verarbeiten eines Abfragezeichenfolgeflag Wert aus der URL entfernen, zum Beispieldie Abfragezeichenfolgeflag in AngularJS

http://myurl.com/#/?foo=baa 

Ich kann die URL

http://myurl.com/#/?foo= 

von

$location.search('myQueryStringParameter', ''); 
mit ändern

Wie werde ich den Query-String insgesamt los (ohne explizite Weiterleitungen oder Server-Side-Action und so weiter), so dass nur

http://myurl.com/#/ 

bleibt im Browser? Es sollte ziemlich einfach sein, aber ich kann keinen Bezug finden.

Antwort

24

Try this:

$location.url($location.path()) 

Siehe documentation für weitere Informationen.

+0

Natürlich zu tun! Danke, funktioniert genau so, wie es sollte. – Olaf

+6

aber es lädt die Seite erneut – saf

+0

Dies löscht alle Querystring-Schlüssel/Wert-s. Was passiert, wenn ich will nur nur einen von ihnen entfernen? – Korayem

34

Sie waren in der Nähe, Sie

$location.search('myQueryStringParameter', null); 

Von ng.$location documentation

null zu setzen benötigt Wenn Suche ein String ist, außer Kraft setzen paramValue wird dann nur einen einzigen Suchparameter. Wenn paramValue ein Array ist, wird der Parameter als kommagetrennter Wert festgelegt. Wenn paramValue null ist, wird der Parameter gelöscht werden.

+1

Cool, danke. Scheint zu arbeiten. – Olaf

+0

Das löscht aus irgendeinem Grund alle meine Parameter. Wenn ich name = Olly & position = forward habe und $ location.search (position, null) rufe, wird alles gelöscht. – Alessandro

+1

@Alessandro Wenn Sie ein Testprojekt erstellen können, das es reproduziert, melden Sie es als Fehler. Es hat sich für eine lange (in Angular Land) Zeit wie für mich dokumentiert bewährt. – toxaq

-2

versuchen diese

$location.url('/'); 

documentation Siehe für weitere Informationen.

+0

Dies würde den Benutzer auf den Root-Pfad umleiten und das ist nicht das, was die OP wollte. – Ashwin

4

Die einfachste Lösung ist die gleiche wie internaly in $ location.url

$location.search('') 
Verwandte Themen