【发布时间】:2013-04-16 15:15:07
【问题描述】:
我无法让 sammy.js 路由按预期工作。
我有以下 JavaScript。
(function ($) {
var app = $.sammy('#main', function () {
this.get('#/', function (context) {
context.log("start page");
});
this.get("#/another/:id/", function (context) {
context.log("another page with id = " + context.params["id"]);
});
});
$(function (context) {
app.run('#/');
});
})(jQuery);
我的理解是,只要 URL 发生变化,只要新路由对应声明的路由之一,那么我应该在控制台日志中看到相关消息。
但我没有。
当页面首次加载时,我可以看到“起始页”消息。到目前为止一切顺利。
如果我那么
- 点击指向 [my url]/#/another/1/ 的链接
- 在地址栏中手动输入 [my url]/#/another/1/ 并按
...什么也没发生,即我没有看到第二条路线的消息。
但是,对于地址栏中的第二条路由,如果我现在按 F5 或单击浏览器的 刷新 按钮,则页面会重新加载并显示预期的控制台消息。
我是否误解了,或者当超链接或键盘更改了 URL 哈希值时,Sammy 不应该注意到,然后采取相应的行动?我还需要在脚本中添加其他内容吗?
【问题讨论】: