簡體   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