Angular 阻止应用程序2外部的location.back()

Angular 阻止应用程序2外部的location.back(),angular,angular2-routing,Angular,Angular2 Routing,我为我的应用程序编写了PageNotFound组件,并在此处添加链接“返回”,但如果历史记录为空,我想在主页“/”上重定向用户 如何实现这一点?我通过以下方式解决了这个问题: back() { if (window.history.length > 1) { this.location.back(); } else { this.router.navigate(['/']); } }

我为我的应用程序编写了PageNotFound组件,并在此处添加链接“返回”,但如果历史记录为空,我想在主页“/”上重定向用户


如何实现这一点?

我通过以下方式解决了这个问题:

back() {
        if (window.history.length > 1) {
            this.location.back();
        } else {
            this.router.navigate(['/']);
        }
    }

首先,你不能控制应用程序之外的任何东西。您可以使用
router.navigate
而不是
location.back
,这意味着这一切都在您的应用程序中。您建议如何使用
router.navigate
?是否总是在主页上重定向?只有在您以前未访问另一侧时,此选项才有效。
back() {
        if (window.history.length > 1) {
            this.location.back();
        } else {
            this.router.navigate(['/']);
        }
    }