javascript – AngularJS添加到浏览器历史记录,无需重新加载页面,也没有HTML5 pushstate

前端之家收集整理的这篇文章主要介绍了javascript – AngularJS添加到浏览器历史记录,无需重新加载页面,也没有HTML5 pushstate前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个搜索页面,允许用户深入分类和/或输入搜索词.我想让用户能够使用后退按钮撤消这些操作.使用AngularJS,我如何让这个页面为每个操作的浏览器历史记录添加条目.我不能使用 HTML5 pushstate.

解决方法

我发现我可以通过更改查询字符串参数而不重新加载页面来执行此操作,方法是使用 here中关于reloadOnSearch的答案:
$routeProvider
  .when('/items',{
    controller: 'ItemsCtrl',templateUrl: '/templates/items',reloadOnSearch: false
  },...
);

然后,从相同的答案,使用以下方法设置查询字符串:

$location.search('id',123);

最后使用here的答案检测路线变化:

$scope.$on('$routeUpdate',function(){
  $scope.sort = $location.search().sort;
  $scope.order = $location.search().order;
  $scope.offset = $location.search().offset;
});
原文链接:https://www.f2er.com/js/156291.html

猜你在找的JavaScript相关文章