【问题标题】:Reload page after second click on routerLink第二次点击 routerLink 后重新加载页面
【发布时间】:2018-01-25 21:30:20
【问题描述】:

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

Angular2 Router3 - Can't reload/refresh active route

Angular 2 reloads routerLink user clicks again

但是当 angular 2 处于 beta 版本时已经解决了,并且该问题存在 angular 问题。

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

【问题讨论】:

标签: angular angular-ui-router


【解决方案1】:

我很好奇,自己做了一些谷歌搜索。我在 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.3import { Router, NavigationEnd } from '@angular/router'; 版本上对此进行了测试

【讨论】:

  • @ArgOn,感谢您的回复!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-06-30
  • 2022-11-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多