Angular.js:prettyPhoto URL重定向到Angular路由中提到的默认页面

Angular.js : prettyPhoto URL redirected to default page mentioned in angular route

本文关键字:Angular 默认 路由 prettyPhoto URL 重定向 js      更新时间:2023-09-26

当我单击与prettyPhoto插件关联的任何图像时,浏览器的URL将更改为example.com/#/prettyPhoto[residential1]/0/,并重定向到.otherwise({..}) 中定义的路线

app.config(['$routeProvider', function ($routeProvider) {
    $routeProvider
        .when('/home', {
            title: 'Home',
            templateUrl: 'partials/home.html',
            controller: 'PageCtrl'
        })
        .otherwise({
            redirectTo: '/home'
        });
}]);

我可以做下面提到的事情吗?例如:在/prettyPhoto*******之后定义的任何东西都应该重定向到/projects:

.when('/prettyPhoto[*anyArray*]/*anyNumber*/', {
            redirectTo: '/projects'
})

在文档中,它说:

路由路径(与$location.path匹配)。如果$location.path包含多余的尾部斜线或缺少一个,则路由仍将匹配,并且$location.paath将更新以添加或删除尾部斜线,使其与路由定义完全匹配。

路径可以包含以冒号开头的命名组:例如:name。当路由匹配时,直到下一个斜杠的所有字符都将匹配并存储在给定名称下的$routeParams中。路径可以包含以冒号开头、以星号结尾的命名组:例如:name*。当路由匹配时,所有字符都会急切地存储在给定名称下的$routeParams中。路径可以包含带问号的可选命名组:例如:name?。

例如,像/color/:color/largetcode/:largecode*/edit这样的路由将匹配/color/brown/largecode/code/和/斜线/edit并提取:

所以,如果我使用它所说的,你的代码就会变成:

.when('/prettyPhoto:anyArray/:anyNumber', {
        redirectTo: '/projects'
})

文件:https://docs.angularjs.org/api/ngRoute/provider/$routeProvider

我希望我的答案适合你:)

在初始化prettyPhoto 的任何位置设置深度链接:false

$("a[rel^='pretyPhoto']").prettyPhoto({animation_speed:"正常",幻灯片放映:5000,autoplay_slideshhow:false,overlay_gallery:true,深度链接:false,social_tools:false});