微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

angularjs – 如果我的url包含路由参数,则哈希链接重新路由为角

如果我有一个级别的路由,则哈希链接按预期工作,没有重新路由.但是我有一些url是country / kh,如果我尝试使用哈希标签,如country / kh#项目,页面重新路由,这是非常讨厌的.

所以,如果im在页面国家,并点击链接#developing,那么页面将滚动到#developing而不重新路由,这是所需的.如果我在页面国家/地区,我点击#projects,页面将重新路由,然后滚动到#projects;我不想要重新路由发生.

这个问题只发生在大自然page1 / parameter#anchor的链接上,而不是简单的pageA#anchor.

没有任何代码示例或堆栈空间,很难回答您的问题.我实施了一个密码( 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>

国家/地区页面HTML代码段:

<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 举报,一经查实,本站将立刻删除。

相关推荐