Вы можете использовать reload
метод $route
сервиса. Введите $route
в свой контроллер, а затем создайте метод reloadRoute
на своем $scope
.
$scope.reloadRoute = function() {
$route.reload();
}
Затем вы можете использовать его по ссылке следующим образом:
<a ng-click="reloadRoute()" class="navbar-brand" title="home" data-translate>PORTAL_NAME</a>
Этот метод приведет к перезагрузке текущего маршрута. Однако, если вы хотите выполнить полное обновление, вы можете ввести $window
и использовать это:
$scope.reloadRoute = function() {
$window.location.reload();
}
Позже отредактируйте (ui-router):
Как упоминали JamesEddyEdwards и Dunc в своих ответах, если вы используете angular-ui / ui-router, вы можете использовать следующий метод для перезагрузки текущего состояния / маршрута. Просто введите $state
вместо, $route
и тогда вы получите:
$scope.reloadRoute = function() {
$state.reload();
};
Александрин Русь
источник
window
Объект сделан доступным через$window
сервис для облегчения тестирования и насмешек , вы можете пойти с чем-то вроде:И :
Как примечание, я не думаю, что $ route.reload () на самом деле перезагружает страницу, а только маршрут .
источник
$window
вместоwindow
.$window
документации , в основном это потому , чтоreloadPage
было бы (лучше) проверяемым , когда он использует$window
.Делает трюк.
Не нужны маршруты или что-то еще, просто старый js
источник
Аналогично ответу Александрина, но с использованием $ state, а не $ route:
(Из ответа JimTheDev здесь SO .)
источник
Если вы используете более продвинутый ui-маршрутизатор Angulars, который я определенно рекомендую, теперь вы можете просто использовать:
Что по сути делает то же самое, что и ответ Дунк.
источник
Мое решение избежать бесконечного цикла состояло в том, чтобы создать другое состояние, в котором было выполнено перенаправление:
источник
Угловой 2+
Я нашел это во время поиска Angular 2+, так что вот путь:
источник
Его достаточно просто использовать
$route.reload()
(не забудьте ввести $ route в ваш контроллер), но из вашего примера вы можете просто использовать «href» вместо «ng-href»:Вам нужно только использовать ng-href, чтобы защитить пользователя от недействительных ссылок, вызванных их щелчком до того, как Angular заменил содержимое тегов {{}}.
источник
На Angular 1.5 - после попытки некоторых из вышеперечисленных решений, желающих перезагрузить только данные без полного обновления страницы, у меня были проблемы с правильной загрузкой данных. Однако я заметил, что когда я перехожу к другому маршруту, а затем возвращаюсь к текущему, все работает нормально, но когда я хочу перезагрузить только текущий маршрут
$route.reload()
, тогда часть кода не выполняется должным образом. Затем я попытался перенаправить на текущий маршрут следующим образом:и в конфиг модуля добавьте еще
when
:и это прекрасно работает для меня. Он не обновляет всю страницу, а только вызывает перезагрузку текущего контроллера и шаблона. Я знаю, что это немного глупо, но это было единственное решение, которое я нашел.
источник
var reload = $location.url(); $location.url(''); $timeout(function() { $location.url(reload); });
; не нужно создавать случайные маршруты. Но было бы интересно посмотреть, какой код не переоценивает для вас. Похоже, что дажеredirectTo
s иresolve
функции повторно выполняются в обычном режиме$route.reload()
(см. Console.log).и в контроллере
и в файле маршрута
Итак, если идентификатор, переданный в URL-адресе, совпадает с тем, что исходит от функции, вызываемой щелчком якоря, просто перезагрузите, иначе следуйте запрошенному маршруту.
Пожалуйста, помогите мне улучшить этот ответ, если это поможет. Любые, предложения приветствуются.
источник
Это можно сделать, вызвав метод reload () объекта окна в простом JavaScript.
источник
Предлагаю сослаться на страницу. Официальное предложение
https://docs.angularjs.org/guide/$location
источник
Это можно сделать, вызвав метод reload () в JavaScript.
источник