angularjs – $location.path将哈希更改为#&.hash不能正常工
发布时间:2020-12-17 08:21:54 所属栏目:安全 来源:网络整理
导读:我想重定向到另一个页面焦点应该放在一些带有id的DIV上,让我们说’some-div-id’. 我试过跟随 $location.path('/' + $scope.config_path.school + '/' + $routeParams.someUrl + '/#some-div-id') 这工作正常,但它首先将#改为# 喜欢 /%23some-div-id #If '#'
我想重定向到另一个页面&焦点应该放在一些带有id的DIV上,让我们说’some-div-id’.
我试过跟随 $location.path('/' + $scope.config_path.school + '/' + $routeParams.someUrl + '/#some-div-id') 这工作正常,但它首先将#改为# /%23some-div-id #If '#' is not already present in the URL /%23some-div-id#some-div-id #If '#' is laready present in the URL /#some-div-id 我也试过以下 $location.path('/' + $scope.config_path.school + '/' + $routeParams.someUrl + '/').hash('some-div-id') 它正在创建一个正确的URL但不向下滚动到ID为some-div-id的DIV EDITED app.run(function($rootScope,$location,$anchorScroll,$routeParams) { $rootScope.$on('$routeChangeSuccess',function(newRoute,oldRoute) { setTimeout(function() { if ($location.hash()) { $anchorScroll($location.hash()); } }); }); }) app.controller('MainCntrl',function($scope,$routeParams) { }); 我也试过$location.path& $location.url
尝试使用$location.url而不是$location.path.
根据文档, 所以代码就像 $scope.goto = function() { $location.url('pageone#one'); }; pageone是状态的URL,#one是ID 另外,为了在直接访问带有ID的URL时使用它,请使用$anchorScroll.在$stateChangeSuccess事件中,检查weather $location.hash是否存在.如果存在,则调用$anchorScroll.代码看起来像 .run(function($rootScope,$timeout) { $rootScope.$on('$stateChangeSuccess',function(event,toState,toParams,fromState,fromParams) { $timeout(function() { if ($location.hash()) { $anchorScroll(); } }); }); }) 示例 – http://plnkr.co/edit/4kJjiMJImNzwLjRriiVR?p=preview(用于查看URL检查http://run.plnkr.co/plunks/4kJjiMJImNzwLjRriiVR/#/pageone中的更改) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |