1
routerCanDeactivate()
已成功阻止從組件導航。Angular2:如何在執行routerCanDeactivate時防止/取消歷史操作?
routerCanDeactivate(nextInstruction: ComponentInstruction, prevInstruction: ComponentInstruction)
{
return confirm("Do you want to discard unsaved changes ?");
}
但是,如果導航是由瀏覽器的back
按鈕或任何其他history.back()
觸發,
造成的,它不保留歷史記錄完整,在每次觸發觸發popState
並最終定位到瀏覽器的主頁(測試鉻)。
編輯:
我在一個變量currentLocation
和
保存當前組件的網址試圖操縱history
與history api
但
只是無法搞清楚正確的順序api電話需要保持完好。
routerCanDeactivate(nextInstruction: ComponentInstruction, prevInstruction: ComponentInstruction) {
history.replaceState(null,null, this.currentLocation);
history.forward();
return confirm("Do you want to discard unsaved changes ?");
}