我正在测试一个应用程序,并且我在js中所做的每个更改都希望它加载主页。
现在,如果我在特定路线上,它将对该路线进行热装。
有没有一种方法可以强制主页以角度刷新?
答案 0 :(得分:2)
一种方法可能是添加一个检查某些全局变量的路由防护。
例如;首先创建服务:
- rpc SayHello(HelloRequest) returns (HelloResponse) {...}
- rpc LotsOfReplies(HelloRequest) returns (stream HelloResponse) {...}
- rpc LotsOfGreetings(stream HelloRequest) returns (HelloResponse) {...}
- rpc BidiHello(stream HelloRequest) returns (stream HelloResponse) {...}
创建使用该服务的路由防护,如下所示:
import { Injectable } from '@angular/core';
@Injectable({
providedIn: 'root',
})
export class MyRedirectCheckService {
redirectToHomePage = true;
}
然后将canActivate路由防护添加到路由器:
import { Injectable } from '@angular/core';
import { CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot } from '@angular/router';
@Injectable({
providedIn: 'root',
})
export class checkFirstLoadGuard implements CanActivate {
canActivate(
next: ActivatedRouteSnapshot,
state: RouterStateSnapshot,
myRedirectCheckService: MyRedirectCheckService ): boolean {
return myRedirectCheckService.redirectToHomePage;
}
}
在您的主要组件构造函数中,请确保切换值:
const routes: Routes = [
{ path: 'main', component: MainComponent },
{ path: 'child', component: ChildComponent, canActivate: [CheckFirstLoadGuard]},
{ path: '**', component: AdminDashboardComponent }
]
];
这只是一种方法,并且未在实际应用程序的上下文中测试代码。
答案 1 :(得分:1)
使用
window.location = ''
代替
this.router.navigate([''])
强制刷新
如果使用内部元素,请使用href属性而不是routerLink属性