我正在构建具有独立公共和私有部分的应用程序(换句话说,它是由2个内部应用程序组合而成 - 在aurelia.setRoot ...的上下文中):
申请流程如下:
http://app/user/details/2
(这意味着想要查看id = 2的用户的详细信息页面)aurelia.setRoot(PRIVATE)
并且处理请求 - 页面上已加载用户详细信息在'setRoot'调用之间,我通过调用:
来清除appRouter appRouter.reset();
appRouter.deactivate();
导航历史记录未被清除 - 允许在成功登录
后处理ulr一切正常(开心流程),直到请求页面出于任何原因将从VM activate
方法返回被拒绝的承诺
从我的观察:
http://app/user/details/2
- 我不清楚 - 以前的位置应为空/ null / undefined 从源代码
调用appRouter.restorePreviousLocation function restorePreviousLocation(router) {
let previousLocation = router.history.previousLocation;
if (previousLocation) {
router.navigate(router.history.previousLocation, { trigger: false, replace: true });
} else if (router.fallbackRoute) {
router.navigate(router.fallbackRoute, { trigger: true, replace: true });
} else {
logger.error('Router navigation failed, and no previous location or fallbackRoute could be restored.');
}
}
由于previosLocation值与当前网址相同,我的应用程序只是闷闷不乐......
我的期望是,重定向到配置的`fallbackRoute
我如何处理这种情况?