我想在路线更改时重新加载或重新渲染侧边栏组件,我具有以下代码:
constructor(
private auth: AuthService,
private router: Router,
private changeDetector: ChangeDetectorRef
) {
this.auth.currentUser.subscribe(x => this.userData = x);
this.router.events.subscribe((event) => {
if (event instanceof NavigationStart) {
this.changeDetector.detectChanges();
console.log('enter');
}
});
}
此输入显示日志“输入”,但不重新加载组件。有人可以帮忙举个例子吗?
答案 0 :(得分:0)
通常不会重新加载组件路由,因为angular可用作SPA(单页应用程序)-但是,只有在这种情况下,您才能加载components
以减小浏览器的大小
在侧边栏href
链接上使用routerLink
和路径名插入anchor
-这将使您的组件在每次单击时都可以重新加载-每次都将加载所有{{ 1}}从服务器-如果您使用的是js
,则此加载方式不正确-这只会帮助您减少每次点击时的浏览器RAM使用率,并且不会保留任何以前的数据,但可以路由一样
因此lazy
是您要提问的词-但请确保您确实要加载组件
希望它会有所帮助-编码愉快:)
答案 1 :(得分:0)
如果您想重新加载整个页面,只需使用
window.location.reload();