Надеюсь, это поможет другим, поскольку ни одно из предложений, которые я видел на SO, не сработало.Мне удалось создать что-то вроде хака, чтобы заставить это работать, используя следующий код в функции app.run .
$rootScope.$on('$stateChangeStart', function (event, toState, toParams, fromState, fromParams) {
//not coming from any other page + coming to ads page + contains query string
if (fromState.name == "" && toState.name == "current_page" && toState.url !== "/current-page-url") {
$location.search({});
}
});
Что происходит, если я захожу на страницу с других страниц, он будет заполнен fromState, но когда я перезагружу текущую страницу, fromState не будет иметь данных, а toState будет содержать информацию о текущей странице.Чтобы избежать непрерывных циклов, я также проверяю, содержит ли текущий URL строку запроса.
ОБНОВЛЕНИЕ Еще лучшее решение.Найдена некоторая помощь по этой ссылке .
$rootScope.$on("$locationChangeStart", function (event, next, current) {
//Page reload detection
if (next == current && && performance.navigation.type == 1) {
event.preventDefault();
$location.search({});
}
});
Первое решение удаляет строку запроса, даже когда вы загружаете страницу со строкой запроса в первый раз (через некоторую закладку).
Второе решение работает так, как задумано.
См. Это для справки: https://developer.mozilla.org/en-US/docs/Web/API/Window/performance