Приложение AngularJS не обновляет страницу при передаче новых параметров
У меня есть приложение, которое я написал, которое принимает имя в качестве аргумента, но когда я щелкаю ссылку после загрузки другого имени, страница ничего не делает, несмотря на новые аргументы, переданные через URL. Я полагаю, что у Angular DOM нет перезагрузки, поскольку это "технически" одна и та же веб-страница. Мне, однако, нужно, чтобы загрузить обновленные данные.
Вот Angular JS/HTML, который заполняет список ссылок:
<li ng-repeat="internalRep in internalReps "><a href="repweekly.html#!?rep={{internalRep.such}}">{{internalRep.such}}</a></li>
Теперь, когда вы находитесь на совершенно другой странице и нажимаете на одну из ссылок, она работает отлично. Однако, если вы уже находитесь на ./repweekly.html#!?rep=REP1 и нажмите на ссылку, чтобы перейти на ./repweekly.html#!?rep=REP5, это изменит URL-адрес в строке URL-адреса, но больше ничего не происходит. Если затем нажать кнопку обновления, загрузятся правильные данные.
Я изменил код на это:
<li ng-repeat="internalRep in internalReps "><a ng-href="./repweekly.html#!?rep={{internalRep.such}}">{{internalRep.such}}</a>
и снова, пока URL в адресной строке изменяется, страница не перезагружается, чтобы показать обновленного представителя.
1 ответ
Хорошо, вот что я в итоге сделал -
Ссылка остается такой, как предложил Josué, с одним исключением - я добавил к ней директиву ng-click ( ng-click="reloadRep()"):
<li ng-repeat="internalRep in internalReps"><a ng-href="repweekly.html#?rep={{internalRep.such}}" ng-click="reloadRep()">{{internalRep.such}}</a></li>
Затем я вставил $window в контроллер:
angularApp.controller('mainController', ["$scope", "$http", "$filter", "$location", "$window", function ($scope, $http, $filter, $location, $window) {...
и наконец я создал функцию, которая запускается при вызове ng-click:
$scope.reloadRep = function () {
$window.location.reload();
};