我想总是重定向到主页
I want to always redirect to home page
我正在测试一个应用程序,在我对 js 进行的每次更改中,我希望它加载主页。
现在,如果我在特定路线上,它会热重载该路线。
在 angular 中是否有强制刷新主页的方法?
一种方法可能是添加一个路由守卫来检查某些全局变量。
例如;首先创建一个服务:
import { Injectable } from '@angular/core';
@Injectable({
providedIn: 'root',
})
export class MyRedirectCheckService {
redirectToHomePage = true;
}
创建一个使用该服务的路由守卫,如下所示:
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;
}
}
然后将 canActivate route guard 添加到您的路由器:
const routes: Routes = [
{ path: 'main', component: MainComponent },
{ path: 'child', component: ChildComponent, canActivate: [CheckFirstLoadGuard]},
{ path: '**', component: AdminDashboardComponent }
]
];
在你的主组件构造函数中,一定要切换值:
constructor(myRedirectCheckService: MyRedirectCheckService) {
myRedirectCheckService.redirectToHomePage = false;
}
这只是一种方法,代码并未在实际应用的上下文中进行测试。
使用
window.location = ''
而不是
this.router.navigate([''])
强制刷新
如果使用内部元素,请使用 href 属性而不是 routerLink 属性
我正在测试一个应用程序,在我对 js 进行的每次更改中,我希望它加载主页。
现在,如果我在特定路线上,它会热重载该路线。
在 angular 中是否有强制刷新主页的方法?
一种方法可能是添加一个路由守卫来检查某些全局变量。
例如;首先创建一个服务:
import { Injectable } from '@angular/core';
@Injectable({
providedIn: 'root',
})
export class MyRedirectCheckService {
redirectToHomePage = true;
}
创建一个使用该服务的路由守卫,如下所示:
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;
}
}
然后将 canActivate route guard 添加到您的路由器:
const routes: Routes = [
{ path: 'main', component: MainComponent },
{ path: 'child', component: ChildComponent, canActivate: [CheckFirstLoadGuard]},
{ path: '**', component: AdminDashboardComponent }
]
];
在你的主组件构造函数中,一定要切换值:
constructor(myRedirectCheckService: MyRedirectCheckService) {
myRedirectCheckService.redirectToHomePage = false;
}
这只是一种方法,代码并未在实际应用的上下文中进行测试。
使用
window.location = ''
而不是
this.router.navigate([''])
强制刷新
如果使用内部元素,请使用 href 属性而不是 routerLink 属性