我们正在使用 Durandal 2.1 开发移动应用程序
文档说明我们可以从激活回调中返回一个承诺,并且它应该在失败时取消导航。
我们一直在尝试使用该功能,但它破坏了我们应用程序中的后退按钮。
正如您在 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);
}
由于这种行为,在导航取消后使用后退按钮将不会提供预期的结果,因为它将导航回导致错误的页面。
我们是否以错误的方式使用此功能?
我们的目标是尝试在激活函数中加载数据,然后在出现错误时导航回当前页面。
非常感谢有关此 Woule 的任何帮助。