亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

OJET - 我如何在離開我的頁面之前提醒用戶?

OJET - 我如何在離開我的頁面之前提醒用戶?

千萬里不及你 2022-10-27 15:16:17
我正在使用 Oracle JET 開發單頁應用程序。在我正在構建的頁面中,我試圖在用戶嘗試離開頁面而不保存更改時提醒他們。因此,當離開頁面時,我想:攔截路由。檢查是否有任何變化。如果有更改,請彈出一個窗口。如果沒有任何未保存的更改,請繼續路由。我相信這應該可以使用 ojRouter (此處的文檔鏈接),但我還沒有讓它工作。我已經嘗試了很多方法,但這是我到目前為止的結果:編輯:我已經更進一步并成功地訪問了 canExit 屬性,我在下面編輯了我的代碼塊。但是,這仍然不會阻止路由。oj.Router.sync().then(() => {   const letrouterState = oj.Router.rootInstance;   letrouterState.currentState().canExit = ableToExit();});function ableToExit() {  let canExit;  //function that will check if the page has unsaved changes  if (ableToExit()) {    canExit = false;  } else {    canExit = true;  }  return canExit;}我也嘗試過使用window.onhashchange. 但是,這只會在打開我的頁面時觸發一個事件,而不是在離開它時觸發。我希望我把我的問題說清楚了,如果需要的話,我很樂意澄清我的任何要求。有人可以幫助我嗎?提前感謝您的時間。
查看完整描述

2 回答

?
蠱毒傳說

TA貢獻1895條經驗 獲得超3個贊

ModuleViewModel接口實現了可選方法,該方法在 的事件上canExit被調用。假設您與 結合使用,這相對容易實現,您只需返回 a然后解決或拒絕它。beforeStateChangeModuleRouterAdapterModuleRouterAdapter<oj-module>Promise



查看完整回答
反對 回復 2022-10-27
?
梵蒂岡之花

TA貢獻1900條經驗 獲得超5個贊

因為干預整個路由器變成了一個非常混亂的解決方案,我們決定調整需求,不再這樣做。感謝任何試圖提供幫助的人。故事的寓意是不要嘗試這個:)。



查看完整回答
反對 回復 2022-10-27
  • 2 回答
  • 0 關注
  • 105 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號