如何在Durandal中从激活回调返回承诺后处理后退按钮

时间:2016-05-09 16:22:29

标签: durandal durandal-2.0 durandal-navigation

我们正在使用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);
}

由于这种行为,导航取消后使用后退按钮将无法提供预期的结果,因为它将导航回导致错误的页面。

我们是否以错误的方式使用此功能?

我们的目标是尝试在激活功能中加载数据,然后在发生错误时导航回当前页面。

非常感谢有关此问题的任何帮助。

0 个答案:

没有答案