我有一些导航链接可以设置URL,然后触发页面重新加载。
这可以在Internet Exlporer中正常运行,但不能在Chrome中运行。
在Chrome浏览器中,当您单击链接时,您可以看到它在浏览器地址栏中设置了新URL,但是当刷新时,它将重置为旧URL并加载旧页面。这是代码:
<body ng-app="MyApp" ng-cloak>
<div ng-controller="MyAppController">
<ul>
<li><a ng-Click="pageReload()" ng-href="myApp#?appId=application1">Application 1</a></li>
<li><a ng-Click="pageReload()" ng-href="myApp#?appId=application2">Application 2</a></li>
</ul>
</body>
myApp.controller('MyAppController', ['$q', '$scope', '$location', function($q, $scope, $location) {
$scope.appName = $location.search().appId;
switch ($location.search().appId() {
case "application1":
$scope.appId = 1;
break;
case "application2":
$scope.appId = 2;
break;
}
$scope.pageReload = function(scope, elm, attr) {
location.reload();
}
}]);
谁能看到为什么它在资源管理器中有效但在Chrome中不起作用?
不幸的是,它不会生成任何错误消息。
答案 0 :(得分:0)
我无法确定为什么这在Chrome浏览器中不起作用。
我能够这样解决问题:
<body ng-app="MyApp" ng-cloak>
<div ng-controller="MyAppController">
<ul>
<li><a ng-Click="pageReload('myApp#?appId=application1')">Application 1</a></li>
<li><a ng-Click="pageReload('myApp#?appId=application2')">Application 2</a></li>
</ul>
</body>
myApp.controller('MyAppController', ['$q', '$scope', '$location', function($q, $scope, $location) {
$scope.appName = $location.search().appId;
switch ($location.search().appId() {
case "application1":
$scope.appId = 1;
break;
case "application2":
$scope.appId = 2;
break;
}
$scope.pageReload = function(href) {
location.href = href;
location.reload();
}
}]);