Bu, şimdi onSameUrlNavigationYönlendirici yapılandırmasının özelliği kullanılarak Açısal 5.1'de yapılabilir .
Burada nasıl olduğunu açıklayan bir blog ekledim ama bunun özü şöyle:
https://medium.com/engineering-on-the-incline/reloading-current-route-on-click-angular-5-1a1bfc740ab2
Yönlendiricinizin yapılandırma etkinleştirme onSameUrlNavigationseçeneğinde, olarak ayarlayın 'reload'. Bu, zaten etkin olan bir rotaya gitmeye çalıştığınızda Yönlendiricinin bir olay döngüsünü başlatmasına neden olur.
@ngModule({
imports: [RouterModule.forRoot(routes, {onSameUrlNavigation: 'reload'})],
exports: [RouterModule],
})
Rotanızı tanımlarda, set runGuardsAndResolversiçin always. Bu, yönlendiriciye her zaman korumaları ve çözümleyici döngülerini başlatarak ilgili olayları tetiklemesini söyleyecektir.
export const routes: Routes = [
{
path: 'invites',
component: InviteComponent,
children: [
{
path: '',
loadChildren: './pages/invites/invites.module#InvitesModule',
},
],
canActivate: [AuthenticationGuard],
runGuardsAndResolvers: 'always',
}
]
Son olarak, yeniden yüklemeyi etkinleştirmek istediğiniz her bileşende olayları işlemeniz gerekir. Bu, yönlendiriciyi içe aktararak, olaylara bağlanarak ve bileşeninizin durumunu sıfırlayan ve gerekirse verileri yeniden getiren bir başlatma yöntemini çağırarak yapılabilir.
export class InviteComponent implements OnInit, OnDestroy {
navigationSubscription;
constructor(
// … your declarations here
private router: Router,
) {
// subscribe to the router events. Store the subscription so we can
// unsubscribe later.
this.navigationSubscription = this.router.events.subscribe((e: any) => {
// If it is a NavigationEnd event re-initalise the component
if (e instanceof NavigationEnd) {
this.initialiseInvites();
}
});
}
initialiseInvites() {
// Set default values and re-fetch any data you need.
}
ngOnDestroy() {
if (this.navigationSubscription) {
this.navigationSubscription.unsubscribe();
}
}
}
Tüm bu adımlar uygulandığında, rota yeniden yüklemeyi etkinleştirmiş olmanız gerekir.