2013-09-16 89 views
17

讀取和處理來自URL查詢字符串值之後查詢字符串,例如卸下在AngularJS

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

我可以通過使用

$location.search('myQueryStringParameter', ''); 
改變網址

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

我該如何擺脫查詢字符串(沒有明確的重定向或服務器端動作等),只有

http://myurl.com/#/ 

保持在瀏覽器?它應該相當簡單,但我找不到任何參考。

回答

24

試試這個:

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

更多信息請參見documentation

+0

當然做一樣internaly!謝謝,完全按照它應該的方式工作。 – Olaf

+6

但它重新加載頁面 – saf

+0

這將清除所有查詢字符串鍵/值-s。如果我只想刪除其中的一個,該怎麼辦? – Korayem

34

你接近,你需要設置空

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

ng.$location documentation

如果搜索是一個字符串,那麼paramValue將覆蓋只有一個搜索參數。如果paramValue是一個數組,它會將參數設置爲逗號分隔值。 如果paramValue爲空,參數將被刪除。

+1

很酷,謝謝。似乎工作。 – Olaf

+0

由於某種原因,這是刪除我所有的參數。如果我有名稱= Olly&position = forward,並且我調用$ location.search(position,null),則會刪除所有內容。 – Alessandro

+1

@Alessandro如果您可以創建一個重現它的測試項目,將其記錄爲一個錯誤。它現在已經爲我記錄了長時間(在Angular地區)的時間。 – toxaq

-2

試試這個

$location.url('/'); 

更多信息請參見documentation

+0

這會將用戶重定向到根路徑,這不是OP想要的。 – Ashwin

4

最簡單的解決方法是在$ location.url

$location.search('')