[英]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.