我有一個Durandal應用程序,允許用戶更新個人資料信息的各個位。對於一些數據,用戶必須點擊「保存」來表示他們想保存他們的改變。攔截路線導航並詢問用戶「你確定你想離開這個頁面嗎?」
如果用戶嘗試從未保存的更改導航離開當前視圖,我們想攔截導航並彈出一個模式說:「您有未保存的更改 - 是否要在離開此視圖之前保存它們?」
但是,在回顧Durandal Router plugin documentation時,我無法確定如何在我的viewmodel中攔截導航請求。我想我想聽the router:route:activating event。但:
- 我不知道在哪裏以及如何爲此設置偵聽器。
- 我不知道如何取消導航(所以我可以彈出我的模態)在我的事件處理程序。
如果談論任意鏈接點擊或其他UA導航並更改URL,則直接處理瀏覽器事件。 Durandal路由器不包含「導航前」行爲。 – user2864740
從用戶的角度來看,這是網站最煩人的事情。抱歉。 –