第二次单击routerLink后重新加载页面

时间:2017-08-17 12:48:27

标签: angular angular-ui-router

这个问题已经问过了。 当我们第二次点击<a routerLink="/home" routerLinkActive="active">Home</a>之类的链接时,页面不会重新加载。

Angular2 Router3 - Can't reload/refresh active route

Angular 2 reloads routerLink user clicks again

但是当角度2处于测试版时,它已经被解决,并且关于这个问题存在一个角度问题。

现在我们有角度4,我会问,所提供的答案是否仍然是解决问题的最佳方法。

1 个答案:

答案 0 :(得分:6)

我很好奇并且自己做了一些谷歌搜索。我在Angular的GitHub功能请求中找到了这个解决方法:

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

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

我尝试将其添加到我的 app.component.ts ngOnInit功能中,确实有效。现在,对同一链接的所有进一步点击都会重新加载component和数据。

Link to original GitHub feature request

归功于GitHub上的 mihaicux2

我在版本4.0.0-rc.3上使用import { Router, NavigationEnd } from '@angular/router';

对此进行了测试