$location.path用于浏览器后退按钮



嗨,我的场景非常相似,比如这个js fiddle链接http://jsfiddle.net/jccrosby/eRGT8/light/但我希望浏览器的后退按钮在你浏览每个选项卡时都能正常工作。这是JS fiddle的另一个链接http://jsfiddle.net/codef0rmer/uDPHL/它可以使用浏览器返回按钮,但它是由ng类函数触发的,我想通过ng点击来完成,它在IE8中也不起作用。在代码下面,我尝试过,但没有成功。

$scope.currentTab = $location.path(tab.url);

任何建议

更新-根据下面的一个答案。状态需要更改/更新。那么,为什么在ng类函数上点击浏览器返回按钮而不是在ng点击函数中时状态发生变化

 $scope.navClass = function (page) {
    var currentRoute = $location.path().substring(1);
    return page === currentRoute ? 'active' : '';
};   
 $scope.navClick = function (page) {
     $scope.testURL = $location.path()
};       

感谢

为了让浏览器返回按钮工作,您应该像工作示例中那样,在选择选项卡时更改状态。

在工作示例中,浏览器历史记录由于href="#"而发生更改,但不是由ngClass触发的。这里,ng-class仅用于根据当前状态更改css类。

ng-click上调用此方法,它会更改浏览器url并设置$scope.currentTab值

$scope.changeUrl = function(url) {
  $location.path('#'+url); 
  $scope.currentTab = url;
}

最新更新