如果我有一个级别的路由,则哈希链接按预期工作,没有重新路由.但是我有一些url是country / kh,如果我尝试使用哈希标签,如country / kh#项目,页面重新路由,这是非常讨厌的.
所以,如果im在页面国家,并点击链接#developing,那么页面将滚动到#developing而不重新路由,这是所需的.如果我在页面国家/地区,我点击#projects,页面将重新路由,然后滚动到#projects;我不想要重新路由发生.
没有任何代码示例或堆栈空间,很难回答您的问题.我实施了一个密码(
http://plnkr.co/edit/oflB21?p=preview)来尝试重现这个问题,但是你可以看到我无法重现这个问题.即您可以轻松地在页面的两个不同部分之间来回浏览,例如#/ Country / Italy#Section-4和#/ Country / Italy#Section-1之间,没有任何页面加载或重新路由.请查看我的工作示例在以下的广告.这很可能是由于一个丢失的哈希爆炸或正斜杠或这样的细节而发生的.
主页的HTML代码段:
<ul> <li><a href="#/Country">Go to /Country</a></li> <li><a href="#/Country/US">Go to /Country/US</a></li> <li><a href="#/Country/Italy#Section-4">Go to /Country/Italy#Section-4</a></li> <li><a href="#/Country/Canada#Section-8">Go to /Country/Canada#Section-8</a></li> </ul>
<div id="Section-1" class="section pink"> Section 1 <div ng-if="country"> <a ng-href="#/Country/{{country}}#Section-8">Go to /Country/{{country}}#Section-8</a> </div> <div ng-if="!country"> <a ng-href="#/Country#Section-8">Go to /Country#Section-8</a> </div> </div>
所有JavaScript代码:
var app = angular.module("app",["ngRoute"]); app.config(["$routeProvider","$locationProvider",function ($routeProvider,$locationProvider) { $routeProvider .when("/",{ templateUrl: "./home-page.html",caseInsensitiveMatch: true,}) .when("/Home",}) .when("/Country",{ templateUrl: "./country-page.html",}) .when("/Country/:country",}) }]); countryController.$inject = ["$scope","$routeParams","$location","$anchorScroll"]; function countryController($scope,$routeParams,$location,$anchorScroll) { $scope.country = $routeParams.country; if (!!$location.$$hash) { $location.hash($location.$$hash); $anchorScroll(); } }
原文地址:https://www.jb51.cc/angularjs/140786.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。