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