С $location.search(): как удалить параметр из URL, когда он пуст
$location.search()
установить URL
параметр поиска, который передается в search()
задается формой. Выбор и отмена выбора элемента приводит к тому, что значение некоторых параметров становится "нулевым", поэтому URL выглядит так:
myapp.com/search?type=text¶meter=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});
}