我们正在使用Durandal 2.1开发移动应用程序
文档声明我们可以从激活回调中返回一个promise,它应该在失败时取消导航。
我们一直在尝试使用该功能,但它打破了我们应用程序中的后退按钮。
正如您在Durandal的router.js
插件代码中看到的那样,cancelNavigation
功能正在向导航 lastUrl
:
function cancelNavigation(instance, instruction) {
system.log('Navigation Cancelled');
router.activeInstruction(currentInstruction);
router.navigate(lastUrl, false);
isProcessing(false);
rootRouter.explicitNavigation = false;
rootRouter.navigatingBack = false;
router.trigger('router:navigation:cancelled', instance, instruction, router);
}
由于这种行为,导航取消后使用后退按钮将无法提供预期的结果,因为它将导航回导致错误的页面。
我们是否以错误的方式使用此功能?
我们的目标是尝试在激活功能中加载数据,然后在发生错误时导航回当前页面。
非常感谢有关此问题的任何帮助。