2013-09-02 12 views
44

$location.search() ustawić URL

parametr wyszukiwania, który jest przekazywany do search() ustala formę. Zaznaczanie i odznaczanie elementu powoduje pewne parametry wartość jako „null”, a więc url wygląda następująco:

myapp.com/search?type=text&parameter=null 

więc chciałbym, aby usunąć te „null” parametry z adresu URL. W dokumentacji znajduje się "parametr", który można przekazać jako drugi parametr do .search (search, paramValue): Jeśli wartość to null, parametr zostanie usunięty.

ale nie mogę tego zrobić ... żadnej sugestii?

edit: o to rozwiązanie oparte na @BKM wyjaśnienia

usunąć co parametry, które są null, konieczne do pętli przez wszystkie z nich i przetestować każdy z nich, podobnie jak to:

for (var i in search) { 
    if (!search[i]) $location.search(i, null); 
} 
$location.search(search); 

Odpowiedz

87

Za pomocą usługi można usunąć parametr wyszukiwania, przypisując mu wartość pustą:

W przypadku, gdy parametr ma wartość zerową, w twoim przypadku 'parameter' możesz usunąć go z adresu URL, przypisując mu wartość pustą, taką jak;

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

Mam nadzieję, że to pomaga.

+0

ok to usunięcie parametru. więc, aby zrobić to, co chciałem, musiałem przechodzić przez wszystkie parametry i usunąć je, jeśli parametr jest zerowy ('if (! parametr)'). Dziękuję Ci. zamierzam edytować moją odpowiedź za pomocą tego rozwiązania –

27

Możesz użyć $location.search({}), aby wyczyścić wszystkie naraz.

-1

Można również zrobić:

var search = $location.search(); 
if (search.parameter == 'null') { 
    $location.search({'parameter': null}); 
} 
Powiązane problemy