默认,当收到导航到当前URL的请求,Angular路由器会忽略,重复点击同一链接页面不会刷新。
在hero.ts添加
constructor(private heroService: HeroService, private router: Router) {
this.router.routeReuseStrategy.shouldReuseRoute = function () {
return false;
};
}
新建一个CustomReuseStrategy.ts文件
import {ActivatedRouteSnapshot, DetachedRouteHandle, RouteReuseStrategy} from '@angular/router';
export class CustomReuseStrategy implements RouteReuseStrategy {
shouldDetach(route: ActivatedRouteSnapshot): boolean {
return false;
}
store(route: ActivatedRouteSnapshot, handle: DetachedRouteHandle | null): void {
}
shouldAttach(route: ActivatedRouteSnapshot): boolean {
return false;
}
retrieve(route: ActivatedRouteSnapshot): DetachedRouteHandle | null {
return null;
}
shouldReuseRoute(future: ActivatedRouteSnapshot, curr: ActivatedRouteSnapshot): boolean {
return false;
}
}
使用自定义RouteReuseStrategy:
最后在在AppRoutingModule.ts路由配置页面添加
@NgModule({
imports: [RouterModule.forRoot(routes, {onSameUrlNavigation: 'reload'})],
exports: [RouterModule],
providers: [
{provide: RouteReuseStrategy, useClass: CustomReuseStrategy}
]
})
版权声明:本文为weixin_43783206原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。