【发布时间】:2021-05-20 06:36:41
【问题描述】:
我正在尝试将共享库中的 Router Guard 用于应用程序路由模块(在应用程序级别)。
我创建了这个 RouterGuard (route.guard.ts):
@Injectable({
providedIn: 'root'
})
export class RouteGuard implements CanActivate {
constructor(private router: Router) {}
canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean {
this.router.navigate(['login']);
return false;
}
}
在共享库上我试图导出这个类。
import {RouteGuard} from './auth/guard/route.guard';
@NgModule({
imports: [CommonModule, MaterialModule, RouteGuard],
exports: [MaterialModule, RouteGuard]
})
export class SharedModule {}
最后,我需要在应用程序级别使用这个守卫来检查我的路线。
const routes: Routes = [
{
path: '',
component: LoggedComponent,
children: [
{path: '', component: HomeComponent}
],
// Here
canActivate: [RouteGuard]
},
{
path: '',
component: AuthComponent,
children: [
{path: '', redirectTo: 'login', pathMatch: 'full'},
{path: 'login', component: LoginComponent},
{path: 'signin', component: SigninComponent}
]
}
];
但是我得到了这个错误:
error NG6002: Appears in the NgModule.imports of AppModule, but itself has errors
11 export class SharedModule {}
【问题讨论】:
标签: angular angular-routing ng-modules angular-guards