AngularJS 应用程序在传递新参数时不刷新页面
AngularJS app not refreshing page when passed new parameters
我写了一个应用程序,它接受一个名称作为参数,但是当我在加载其他名称后单击 link 时,尽管通过 URL。我想 Angular DOM 不会重新加载它,因为它是 "technically" 同一个网页。但是,我确实需要它来加载更新的数据。
这是填充 link 列表的 Angular JS/HTML:
<li ng-repeat="internalRep in internalReps "><a href="repweekly.html#!?rep={{internalRep.such}}">{{internalRep.such}}</a></li>
现在,当您在一个完全不同的页面上并单击其中一个 link 时,它会完美运行。但是,如果您已经在 ./repweekly.html#!?rep=REP1 并单击 link 转到 ./ repweekly.html#!?rep=REP5 它将更改 URL 栏中的 URL,但没有其他任何反应。如果您随后单击刷新按钮,则会加载正确的数据。
我把代码改成这样:
<li ng-repeat="internalRep in internalReps "><a ng-href="./repweekly.html#!?rep={{internalRep.such}}">{{internalRep.such}}</a>
同样,当地址栏中的 URL 发生变化时,页面不会重新加载以显示更新后的代表。
好吧,这就是我最后做的 -
link 与 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();
};
我写了一个应用程序,它接受一个名称作为参数,但是当我在加载其他名称后单击 link 时,尽管通过 URL。我想 Angular DOM 不会重新加载它,因为它是 "technically" 同一个网页。但是,我确实需要它来加载更新的数据。
这是填充 link 列表的 Angular JS/HTML:
<li ng-repeat="internalRep in internalReps "><a href="repweekly.html#!?rep={{internalRep.such}}">{{internalRep.such}}</a></li>
现在,当您在一个完全不同的页面上并单击其中一个 link 时,它会完美运行。但是,如果您已经在 ./repweekly.html#!?rep=REP1 并单击 link 转到 ./ repweekly.html#!?rep=REP5 它将更改 URL 栏中的 URL,但没有其他任何反应。如果您随后单击刷新按钮,则会加载正确的数据。
我把代码改成这样:
<li ng-repeat="internalRep in internalReps "><a ng-href="./repweekly.html#!?rep={{internalRep.such}}">{{internalRep.such}}</a>
同样,当地址栏中的 URL 发生变化时,页面不会重新加载以显示更新后的代表。
好吧,这就是我最后做的 -
link 与 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();
};