gpt4 book ai didi

javascript - 允许带有哈希值的 href 链接绕过 SammyJS 路由

转载 作者:行者123 更新时间:2023-11-28 20:18:18 24 4
gpt4 key购买 nike

我定义了以下服务器端 URL 映射:

/main/item1
/main/item2

我添加了 SammyJS 路由支持,以便我能够执行以下操作:

/main/item1#/         /* main view */
/main/item1#/topups /* topup view */

我已经像这样设置了 SammyJS:

s.app = Sammy(function() {
this.get('#/topups', function() {
console.log('Initializing topups view.');
});
this.get('#/', function() {
console.log('Initializing main view.');
});
});

问题是,我的页面中有一个摘要部分,该部分重定向到不同“项目”的顶部 View 。例如,我的网址为 /main/item1#/ ,并且在这个页面中,存在一个标签 <a href="/main/item2#/topups">item 2's topups</a> .

我希望被重定向(页面刷新)到新的 URL,但是,SammyJS 似乎正在拦截 /main/item2#/topups调用并简单地运行 this.get('#/topups')我定义的路线。

我预计,由于哈希之前的 URL 路径,/main/item1/main/item2不同,SammyJS路由不会被触发。

有没有办法防止 SammyJS 中发生这种行为?

最佳答案

我对 Sammy 了解不多,但我可以从任何路由器的行为方式告诉您,它会捕获路由可能性中的第一个匹配项,因此,任何以 #/topups 结尾的内容都将被视为相同只要它位于井号之后。

所以你最好这样定义路由器:

this.get('#/topups/:item', function() {
console.log('Initializing topups view for item: '+ item);
})

然后使用如下 URL 调用页面:

<a href="/main/#/topups/item2">item 2's topups</a>

我希望这就是您正在寻找的

关于javascript - 允许带有哈希值的 href 链接绕过 SammyJS 路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18823457/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com