Приложение 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();
};
Другие вопросы по тегам