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

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

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

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

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

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

редактировать: вот решение на основе объяснения @BKM

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

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

3 ответа

Решение

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

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

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

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

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

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

var search = $location.search();
if (search.parameter == 'null') {
  $location.search({'parameter': null});
}
Другие вопросы по тегам