如果激活的routerlink与实际组件相同,请重新加载当前组件(单击)

时间:2019-06-16 03:24:10

标签: angular

我希望当我单击链接时,它将带我到"/" route,这样可以正常工作。

<a routerLink="/">Login</a> 

但是如果我已经在"/"路线上,我希望为其充电的当前组件充满电。换句话说,如果我在"/"路径上,并且单击此标签<a>,则希望重新加载视图。我该怎么办?

2 个答案:

答案 0 :(得分:1)

如果您在同一条路线上,并尝试重新导航至该路线,则默认情况下,角度不会再次重新引导您。这样做主要是出于性能方面的考虑。 (IMO,这很有意义)。

相反,如果您想实现相同的功能,则可以调用ngOnInit() /方法来为同一组件加载数据。

.html

<a routerLink="/" (click)="reloadData()">Reload</a> 

.ts

reloadData() {
   this.ngOnInit();
   // or another method that loads data for the component
   // this.loadData();
}

此方法的优点是您可能不想重新导航到当前所在的所有页面。因此,这将根据您的要求在组件之间特定。

答案 1 :(得分:0)

修改您的根NgModule装饰器,例如:

@NgModule({
    ......
    imports: [
        .....,
        RouterModule.forRoot(routes, { onSameUrlNavigation: 'reload' }),
        ......
    ],
    ......
})
export class AppModule { 
    .......
}