У меня есть система поддержки билетов, которая рассылает электронные письма с указанием c ссылок на билеты. Вот пример ссылки:
"taptap.com/tt_dev/taptapeat/?iTicket_ID=11#/app/controller/ticket
Это предварительно заполняет страницу тикета идентификатором и заполняет его. Теперь , проблема в том, что я не хочу, чтобы «? iTicket_ID = 11» оставался. Я попробовал несколько вещей:
Во-первых, я правильно генерирую URL-адрес, который не имеют параметры получения и работают нормально. Я могу легко получить "taptap.com/tt_dev/taptapeat/#/app/controller/ticket" по указанной выше ссылке.
После входа на страницу я попытался запустить обе эти строки кода:
window.history.replaceState({}, document.title, "/" + newUrl);
// and
window.history.pushState({}, document.title, "/" + newUrl);
Эти строки кода, даже если они выполняются ПОСЛЕ заполнения тикета, стирают всю информацию со страницы. Как будто он никогда не запускался. Вот строка, которую я запускаю ПЕРЕД запуском вышеуказанного кода:
const queryString = window.location.search;
const urlParams = new URLSearchParams(queryString);
$scope.ticketData.ticket.iTicket_ID = urlParams.get('iTicket_ID');
Но эти строки, похоже, ничего не делают.
Так что вместо этого я тоже пытаюсь это сделать в функции "оставить":
$scope.$on('$ionicView.leave', function() {
window.history.pushState({}, document.title, "/" + newUrl);
});
Это вообще ничего не делает - на странице I a гоняться после ухода, мои параметры получения сохраняются. Спасибо за любую помощь!