2014-08-18 4 views
0

Я хотел, чтобы перезагрузить страницу вручную, используя

$location.path('/account'); 

правильно перемещается на другую страницу, однако я хочу использовать

$location.path('/account/messages'); 

время включения/счета/сообщений, чтобы перезагрузить страницу, но ничего не делает. Каков правильный код для перезагрузки?

Благодаря

не Алекс

+0

Что вы используете для маршрутизации? ngRoute? UI-маршрутизатор? –

+0

ngroute, например. $ routeProvider.when() – Alex

+0

См. первый документированный метод в https://docs.angularjs.org/api/ngRoute/service/$route. –

ответ

3

В идеале, вы должны никогда не обновлять всю страницу в AngualrJS. Если вам нужно это сделать, вы не используете AngularJS правильно. Чтобы обновить страницу, все, что вам нужно, это обновить модель, и страница будет обновлена ​​соответствующим образом.

Служба определения местоположения $ не предоставляет доступ к обновлению всей страницы. Если вам нужно обновить всю страницу, вам нужно использовать объект $ window.location.

$window.location.href = "/path/page"; 
6

Ваш вопрос неясен, если вы хотите обновления страницы (как удар F5), одно решение является ответом @Rabi.

Но если вы просто хотите, чтобы перезагрузить вещи под ng-view, повторная инициализация текущего контроллера маршрута, вы можете использовать:

$route.reload(); 

Смотрите также: $route documentation

2

По умолчанию при использовании углового службы определения местоположения , он не перезагружает или не делает вызов ajax для одного и того же URL-адреса, это соответствует их документации, если вы все еще хотите перезагрузить один и тот же URL-адрес с помощью службы определения местоположения, а затем попробуйте этот простой трюк.

$location.path('/urs_whatever_url/'+Math.random()); 

после изменения кода URL-адреса с помощью выше линии, то также изменить URL в $ routeProvider или $ stateProvider как url:/'urs_whatever_url/:id' здесь :id является фиктивной переменной, которая теперь заставить Угловая изменить путь.

Смежные вопросы