我想总是重定向到主页

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 属性