我需要一个客户端路由解决方案才能与chrome应用程序一起使用。我研究了几个,crossroads.js似乎很合适。当我将其包含在html文件中时,它似乎无法工作;也就是说,如果我使用类似
crossroads.addRoute('/news/{id}', function(id){
alert(id);
});
crossroads.parse('/news/123');
,该页面会提示“123”,但是如果我在浏览器的网址栏中输入“/news/321”,它将执行浏览器的默认操作,而不是提示“321”。我究竟做错了什么。 (此外,我知道标题很宽泛,但我相信crossroads.js所遇到的困难要比crossroads.js更普遍。这仅作为示例。)
最佳答案
也使用Hasher(由同一作者撰写)。
Crossroads页面上的文档告诉您需要使用Hasher(因为它将用于监视widow.location栏。)。
因此,您还需要使用Hasher并将其初始化,然后可以将“Crossroads”路线添加到Hasher以开始监视这些特定路线。
//setup crossroads
crossroads.addRoute('foo');
crossroads.addRoute('lorem/ipsum');
crossroads.routed.add(console.log, console); //log all routes
//setup hasher
hasher.initialized.add(crossroads.parse, crossroads); //parse initial hash
hasher.changed.add(crossroads.parse, crossroads); //parse hash changes
hasher.init(); //start listening for history change
//update URL fragment generating new history record
hasher.setHash('lorem/ipsum');
http://millermedeiros.github.com/crossroads.js/
关于javascript - 客户端路由。它是如何工作的?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8211079/