2016-08-01 63 views
0

是否可以將參數傳遞給未記錄在瀏覽器歷史記錄中的路由?aurelia路由器 - 傳遞一次參數(參數不會記錄在瀏覽器歷史記錄中)

我要求

  • 其中一個頁面有保存其先前的信息(當用戶導航離開),我感到存儲在獨立的視圖模型中的數據實現。

  • 其中,如果用戶點擊瀏覽器的歷史記錄按鈕,頁面應使用保存的數據自行重新加載。

但是,如果他們點擊站點其他地方的某個特定按鈕,則用戶希望導航到此頁面,但讓它刷新其狀態。 我遇到的問題是,假設他們點擊那個按鈕,它關係到

/ThePageInQuestion?refresh=true

,他們導航移開,然後單擊後退按鈕時,瀏覽器將回到它的歷史,這將是網址上面和頁面將刷新自己。當然,這不是它應該如何工作的,因爲當他們點擊後退按鈕時,它應該將保存的設置拿回來。我需要一種方法去路由並傳遞{refresh:true}作爲參數,但沒有保存在瀏覽器的歷史記錄中。

這是可能與aurelia路由器?

如果不是,也許我可以手動操縱瀏覽器的歷史記錄,以從url中刪除這個?

在此先感謝。

回答

0

你可以有2個模板,一個緩存內容,一個緩存。
在META標籤中使用緩存控件。

<META HTTP-EQUIV="CACHE-CONTROL" CONTENT="NO-CACHE"> 

,或者嘗試使用香草JS

history.go(number|url) 
0

這裏是我想出了一個解決方案:

​​

的想法是,以取代當前頁面的路線減去任何瀏覽器歷史記錄您不希望存儲在瀏覽器歷史記錄中的參數。這必須在附加回調中完成(如果您在激活的回調中嘗試這樣做,由於路由器尚未調用window.history.pushState(),它將不起作用)。

0

我已經滿足了這個要求,但從未使用過refresh=true。在路線更改和後退按鈕導航中,通常會再次調用您的視圖模型,以便檢查數據並加載它。

這裏有兩個鏈接,應該可以幫助您:

Aurelia Documentation regarding routing and additional data

Sharing data with a service

+0

不知道你明白的問題(因爲我不明白你的答案)。問題不在於如何在視圖模型的整個生命週期內存儲數據(這就是您聽起來像是在回答的問題)。 – pQuestions123

相關問題