我有一个 Durandal 应用程序,允许用户更新各种个人资料信息。对于某些数据位,用户必须单击“保存”以表明他们想要保存他们的更改。
如果用户试图通过未保存的更改导航离开当前视图,我们希望拦截导航并弹出一个模式说“您有未保存的更改 - 您想在离开此视图之前保存它们吗?”
但是,在查看Durandal Router 插件文档时,我无法确定如何在我的视图模型中拦截导航请求。我想我想听一下 router:route:activating 事件。但:
- 我不确定在哪里以及如何为此设置侦听器。
- 我不知道如何在我的事件处理程序中取消导航(因此我可以弹出我的模式)。