繁体   English   中英

Crossroadsjs路由:如何使用?

[英]Crossroadsjs routing: how to use it?

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

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 ??

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');

或者,您可以使用其他历史记录插件,也可以自己编写。 但是,十字路口让您分心。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM