Подтвердить что ты не робот

С $location.search(): как удалить параметр из URL-адреса, когда он равен нулю

$location.search(), чтобы установить URL

параметр поиска, который передается в search(), задается формой. выбор и отмена выбора элемента вызывает некоторое значение параметра "null", поэтому URL-адрес выглядит следующим образом:

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

поэтому я хотел бы удалить эти "нулевые" параметры из url. В документации есть "paramValue", который может передаваться как второй параметр в .search(search, paramValue): если значение null, параметр будет удален.

но я не могу сделать эту работу... любое предложение?

edit:. Это решение, основанное на объяснении @BKM.

чтобы удалить все параметры, которые являются null, необходимо пройти через все из них и протестировать каждый из них следующим образом:

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

Ответ 1

Используя службу $location, вы можете удалить параметр поиска, присвоив ему нулевое значение:

В случае, когда ваш параметр равен нулю, в вашем случае 'parameter' вы можете удалить его из URL-адреса, присвоив ему нулевое значение, например:

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

Надеюсь, что это поможет.

Ответ 2

Вы можете использовать $location.search({}), чтобы очистить все сразу.

Ответ 3

Вы также можете сделать:

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