我正在使用Backbone.js進行非常基本的SPA。我的應用程序有幾條路線。其中有2個給我的問題:索引路由(「/#索引」)和菜單路由(「/#mainmenu」)。Backbone js防止在返回/轉發時更改URL哈希
我的應用程序中的一個簡單的工作流程如下:用戶填寫表單 - >點擊登錄 - >觸發ajax請求 - >如果登錄成功,轉到「/#mainmenu」路由。如果登錄失敗,請保持「/#index」路線。 如果用戶單擊註銷 - > ajax請求 - >如果註銷成功轉到「/#index」,則在「/#mainmenu」上。如果註銷失敗仍保留在「/#mainmenu」上。
,我掙扎的問題是:
- 一個乾淨的方式來觸發過渡到「/#MainMenu的」成功登錄後(我目前使用router.navigate(「MainMenu的」,{觸發:真});但閱讀應避免使用這種方法,在derrick貝利的文章https://lostechies.com/derickbailey/2011/08/28/dont-execute-a-backbone-js-route-handler-from-your-code/)
- 一個乾淨的方法,以防止用戶在瀏覽器中按「返回」按鈕時返回到「/#索引」從「/#mainmenu 「路線。我也想保留url散列以反映當前視圖。
- 防止用戶成功註銷後前往「/#mainmenu」。
- 甚至有可能在點擊瀏覽器後退/前進按鈕時防止URL哈希變化?
當我說「乾淨」時,我指的是「什麼是最佳實踐?」。我部分解決了一些問題,通過保存網址哈希值並恢復相應的哈希值(通過router.navigate(currentRoute,{replace:true});)但我覺得這是一個冒險的方法。
任何反饋是歡迎和非常感謝。
感謝如何避免'{觸發:真}解釋',也爲您的反饋意見。 – bboydflo