我想重新加载路线,但不重新加载整个页面。这不是我想要的:
window.location.reload();
我只想重新加载组件而不是页面。这是我尝试过的:
我还尝试过其他一些随机技巧。尝试从此 URL 中获取以下代码:
Angular 基础知识:刷新 Angular 组件而不重新加载同一组件
mySubscription: any;
constructor() {
this.router.routeReuseStrategy.shouldReuseRoute=function() {
return false;
}
this.mySubscription= this.router.events.subscribe((event)=> {
if(event instanceof NavigationEnd) {
// Trick the Router into believing it's last link wasn't previously loaded
this.router.navigated=false;
}
})
}
但是由于其他原因它不起作用。我需要一个解决方案。请建议其他东西。
skipLocationChange选项对我有用,试试我的服务
import { Injectable } from '@angular/core';
import { Router } from '@angular/router';
@Injectable()
export class ReloadRouteService {
constructor(
private router: Router,
) { }
redirectTo(url: string): void {
// When skipLocationChange true, navigates without pushing a new state into history.
this.router.navigateByUrl('/', {skipLocationChange: true}).then(() => {
this.router.navigate([url]);
});
}
}
当我搜索这个时我需要的是
runGuardsAndResolvers: 'always'
在路线声明中。