每当canDeactivate()返回false时,我都会遇到一些问题,它将更改窗口历史记录,就像它变为true时一样,如果我按下“后退”按钮。我导航到其他URL或不在应用程序本身之外。

请帮我

最佳答案

Here是问题,但仍未解决。

解决方法是,您可以手动将活动网址放回历史记录:

export class CanDeactivateGuard implements CanDeactivate<any> {
    constructor(
        private readonly location: Location,
        private readonly router: Router
    ) {}

    canDeactivate(component: any, currentRoute: ActivatedRouteSnapshot): boolean {
        if (myCondition) {
            const currentUrlTree = this.router.createUrlTree([], currentRoute);
            const currentUrl = currentUrlTree.toString();
            this.location.go(currentUrl);
            return false;
        } else {
            return true;
        }
    }
}

关于angular2-routing - 可以取消更改窗口历史记录,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46448133/

10-11 10:33