2

我正面临与这个问题相同的问题,因为我现在正试图弄清楚如何使用十字路口几个小时,但似乎没有任何效果。它的网站只是另一个记录不佳的网站......我想我可能很愚蠢!我想知道有没有人做到了?

html头,

<title>Crossroads</title>
  <script src="js/libs/signals.js"></script>
  <script src="js/libs/crossroads.min.js"></script>
  <script src="js/app.js"></script>
</head>

app.js,就这么简单,

crossroads.addRoute('/news/{id}', function(id){  
  alert(id);  
}); 

所以我在我的本地主机浏览器上试了一下,

http://localhost/crossroadjs/#/news/123

什么都没发生。我以为会123??

4

2 回答 2

4

Crossroads 不处理来自浏览器的历史/状态更改事件。从他们的网站

路由系统除了路由之外不应该做任何其他事情。

相反,该站点为此目的推荐了Hasher ,并给出了一个相当完整的示例:

//setup crossroads
crossroads.addRoute('foo');
crossroads.addRoute('lorem/ipsum');
crossroads.routed.add(console.log, console); //log all routes

//setup hasher
function parseHash(newHash, oldHash){
  crossroads.parse(newHash);
}
hasher.initialized.add(parseHash); //parse initial hash
hasher.changed.add(parseHash); //parse hash changes
hasher.init(); //start listening for history change

//update URL fragment generating new history record
hasher.setHash('lorem/ipsum');

或者,您可以使用不同的历史插件,或者自己编写一些东西。但十字路口把这部分留给你。

于 2014-01-03T17:45:53.257 回答
1

Crossroads.js 提供crossroads.addRoute(pattern, [handler], [priority]);API 来添加路线模式。但是,当您第一次加载页面时,Crossroads 不会自动启动解析器来检查页面的 url。您需要添加crossroads.parse(document.location.pathname);文档加载以触发路由。查看Crossroads.js 教程

于 2016-07-13T13:33:23.687 回答