首页 > 解决方案 > 如果 routerLink 相同,是否支持重新加载页面

问题描述

我知道 Angular 是一个 SPA,但我只是想知道如果 routerlink 没有改变,是否可以重新加载页面。例如,我有一个带有仪表板按钮的侧边菜单导航栏,用于导航到仪表板视图

[routerLink]="['/merchant/', {outlets: {'page': ['Dashboard']}}]"

在我导航到仪表板后,仪表板按钮不可单击,有什么办法可以重新单击此仪表板按钮?

我想这样做的原因是在仪表板组件上,我的主视图是仪表板,包含很少的 md 卡。通过单击每个 md 卡,我将执行 *ngIf 以仅显示此卡的完整详细信息。我确实有一个 goBack() 按钮可以返回仪表板视图。

但我还想单击侧面菜单中的仪表板按钮以导航回仪表板页面。

谢谢你的帮助。

标签: angular

解决方案


尝试使用以下代码片段。这可能会帮助你。

this._router.routeReuseStrategy.shouldReuseRoute = function(){
    return false;
};

this._router.events.subscribe((evt) => {
    if (evt instanceof NavigationEnd) {
        this._router.navigated = false;
        window.scrollTo(0, 0);
    }
});

路由重用策略的 API 链接:https ://angular.io/api/router/RouteReuseStrategy

参考:如何使用 Angular 2 路由器重新加载当前路由


推荐阅读