有没有人遇到过这种行为?关于它没有多少提及,其他帖子本质上是不同的。这似乎与浏览器行为的文档不一致。
当用户
时,将URL与浏览器同步
- 更改地址栏。
- 点击后退或前进按钮(或点击历史记录链接)。
- 点击链接。
会发生什么:
这是一个有助于调试的观察者:
// listen for the event in the relevant $scope
$rootScope.$on('locationChange', function (event, data) {
console.log(data);
});
//Call locationChange watch at anytime the page is loaded
$scope.$emit('locationChange', $location.$$path);
这是路由:
$routeProvider
.when('/guide', {
templateUrl: 'views/guide.html',
controller: 'GuideController',
controllerAs: 'guide'
})
.when('/', {
templateUrl: 'views/about.html',
controller: 'AboutCtrl',
controllerAs: 'about'
})
.otherwise({
redirectTo: '/'
});
答案 0 :(得分:1)
我是如何解决这个问题的:
var pop = 0;
window.onpopstate = function(event) {
if (document.location.pathname === '/' && pop > 1) {
pop = 0;
document.location = 'http://localhost:9000/';
}
pop++;
};