Подтвердить что ты не робот

AngularJS ui-router: принудительная перезагрузка

У меня есть приложение AngularJS, начинающееся с index.html и использующее ui-router. На основе триггера я хочу перезагрузить полную страницу. Я пробовал:

$state.go($state.current, $stateParams, {
    reload: true,
    inherit: false,
    notify: true
});

Но это не работает. Он не перезагружает мой начальный index.html.

Я могу сделать:

window.location.href = "index.html";

Но тогда я нахожусь на своей начальной странице, а не в текущем состоянии.

Должен ли набор window.location.href to index.html с параметрами строки запроса, определяющими текущее местоположение? Если я это сделаю, как я могу перейти к этому местоположению?

4b9b3361

Ответ 1

Текущий трюк:

$state.go($ state.current.name, $state.params, {reload: true});

Ответ 2

Кажется, что все игнорировали то, что, по-видимому, спрашивает Серж ван ден Овер, и что он хочет, чтобы целая страница перезагружалась, а не только маршрут.

Решение для этого довольно просто, если вы введете службу $window в свой контроллер:

$window.location.reload();

Если вы просто хотите, чтобы маршрут перезагружался (что кажется гораздо более распространенным) и использует ui-router, просто введите команду $state и выполните:

$state.reload();

Это должно было повторно инициализировать контроллеры теперь, когда ошибка была исправлена, хотя я не думаю, что она повторно инициализирует resolve s.

Ответ 3

Это сработало для меня по аналогичному сценарию.

$state.go('root.state').then(function(){
    $state.reload();
});

Ответ 4

Если вы включили службу $route в свой контроллер, вы можете попробовать $route.reload();

Ответ 5

Попробуйте следующее:

$state.transitionTo($state.current, $stateParams, {
    reload: true,
    inherit: false,
    notify: true
});