簡體   English   中英

使用crossroads.js和hasher.js返回到根頁面

[英]returning to root page with crossroads.js and hasher.js

我只是從crossroads.jshasher.js開始,並且成功解析了我的大部分路線。 我不明白的是如何回到頁面的根目錄。 我知道我不是說對了,但這是我的問題:

  1. 我導航到http://example.com,然后看到需要查看的內容。

  2. 我將哈希值更改為http://example.com/#/foo,然后執行更改DOM所需的操作。

  3. 我嘗試在瀏覽器中單擊回來,這很爛。

也許我需要在十字路口定義“根”路線? 我對歷史做錯了嗎?

據我了解,您在兩種設置中都處於中間狀態(哈希+十字路口)。

如果根模式匹配,則將具有“根”模式的路線添加到十字路口會觸發為此路線定義的處理程序。 並且處理程序調用顯示根頁面內容。

第二個問題是必須正確配置的哈希器。 請參閱hasher doc上的hasher.setHash ()和hasher.replaceHash()之間的區別。 如果要保留歷史記錄並使用瀏覽器后退功能,請使用setHash。

整個過程將是:

  1. 通過hasher.setHash(new_hash_value)更改URL,在導航欄中手動輸入URL或使用瀏覽器中的向后按鈕
  2. hasher認識到哈希值已更改,並觸發了進一步處理新URL的十字路口
  3. crossroads解析新的哈希並調用顯示根頁面( 這需要使用根哈希模式的路由

准備哈希器以收聽更改:

function parseHash(newHash, oldHash){
  crossroads.parse(newHash);
}

hasher.initialized.add(initialParse); //parse initial hash
hasher.changed.add(parseHash); //parse hash changes
hasher.init(); //start listening for hash changes

並且當然定義根頁面的路由以能夠調用顯示根內容:

crossroads.addRoute("", function() {
     // call displaying root page
  });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM