使用$location.path来替代$location.search方法,并手动处理查询参数。以下是示例代码:
//获取URL参数 function getQueryParam(paramName) { var urlParams = window.location.search.substring(1); var queryParams = urlParams.split('&'); for (var i = 0; i < queryParams.length; i++) { var pair = queryParams[i].split('='); if (pair[0] == paramName) { return pair[1]; } } return ''; }
// 在URL中设置参数 $scope.setQueryParam = function(paramName, paramValue) { var path = $location.path(); var queryParam = getQueryParam(paramName); if (queryParam) { path = path.replace(paramName + '=' + queryParam, paramName + '=' + paramValue); } else { path += (path.indexOf('?') == -1 ? '?' : '&') + paramName + '=' + paramValue; } $location.path(path); };
//获取查询参数或设置默认值 var queryParam = getQueryParam('myQueryParam') || 'defaultQueryParamValue';
//将参数设置为新值 $scope.setQueryParam('myQueryParam', 'newQueryParamValue');