এটি এখন onSameUrlNavigation
রাউটার কনফিগারেশনের সম্পত্তি ব্যবহার করে কৌণিক 5.1 এ করা যেতে পারে ।
আমি এখানে একটি ব্লগ যুক্ত করেছি যেখানে এটির সংক্ষিপ্ত বিবরণ নীচে দেওয়া হয়েছে as
https://medium.com/engineering-on-the-incline/reloading-current-route-on-click-angular-5-1a1bfc740ab2
আপনার রাউটার কনফিগারেশন সক্ষম করুন onSameUrlNavigation
বিকল্পে, এটি সেট করে 'reload'
। আপনি ইতিমধ্যে সক্রিয় এমন কোনও রুটে নেভিগেট করার চেষ্টা করার সময় রাউটারটি ইভেন্টের চক্রটিকে আগুন ধরিয়ে দেয়।
@ngModule({
imports: [RouterModule.forRoot(routes, {onSameUrlNavigation: 'reload'})],
exports: [RouterModule],
})
আপনার রুটের সংজ্ঞাগুলিতে সেট runGuardsAndResolvers
করুনalways
। এটি রাউটারকে সর্বদা প্রহরীদের এবং সমাধানকারী চক্রগুলি বন্ধ করতে বলবে, সম্পর্কিত ঘটনা গুলি চালিয়ে।
export const routes: Routes = [
{
path: 'invites',
component: InviteComponent,
children: [
{
path: '',
loadChildren: './pages/invites/invites.module#InvitesModule',
},
],
canActivate: [AuthenticationGuard],
runGuardsAndResolvers: 'always',
}
]
অবশেষে, প্রতিটি উপাদান যা আপনি পুনরায় লোডিং সক্ষম করতে চান তাতে আপনার ইভেন্টগুলি পরিচালনা করতে হবে। এটি রাউটারটি আমদানি করে, ইভেন্টগুলিকে আবদ্ধ করে এবং একটি সূচনা পদ্ধতির সাহায্যে করা যেতে পারে যা আপনার উপাদানটির অবস্থা পুনরায় সেট করে এবং প্রয়োজনে ডাটা পুনরায় সংগ্রহ করে।
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();
}
}
}
এই সমস্ত পদক্ষেপের জায়গায়, আপনার রুট পুনরায় লোডিং সক্ষম করা উচিত।