1

我刚开始使用crossroads.jshasher.js,并且成功解析了我的大部分路线。我不明白的是如何回到页面的根目录。我知道我说的不对,但这是我的问题:

  1. 我导航到http://example.com,然后我看到了我需要查看的内容。

  2. 我将哈希更改为http://example.com/#/foo并执行更改 DOM 所需的操作。

  3. 我尝试在浏览器中单击返回,我在这里很糟糕。

也许我需要在十字路口定义“根”路线?我对历史做错了吗?

4

1 回答 1

1

据我了解,您在两种设置中都处于中间状态(哈希器 + 十字路口)。

如果根模式匹配,则将具有“根”模式的路线添加到十字路口会触发为此路线定义的处理程序。处理程序调用显示根页面内容。

第二个问题是必须配置良好的哈希器。请参阅hasher doc上的 hasher.setHash() 和 hasher.replaceHash() 之间的区别。如果您想保留历史记录并使用浏览器返回功能,请使用 setHash。

整个过程将是:

  1. 通过 hasher.setHash(new_hash_value) 更改 URL,在导航栏中手动输入 URL 或使用浏览器中的后退按钮
  2. hasher 认识到 hash 已经改变并触发了进一步处理新 URL 的十字路口
  3. crossroads 解析新的哈希并调用显示根页面(这需要具有根哈希模式的路由

准备 hasher 以便能够监听变化:

function parseHash(newHash, oldHash){
  crossroads.parse(newHash);
}

hasher.initialized.add(initialParse); //parse initial hash
hasher.changed.add(parseHash); //parse hash changes
hasher.init(); //start listening for hash changes

当然,为根页面定义路由,以便能够调用显示根内容:

crossroads.addRoute("", function() {
     // call displaying root page
  });
于 2014-04-11T08:49:56.940 回答