Angular 无法创建有效的角度路由防护
我创建了以下route guard:Angular 无法创建有效的角度路由防护,angular,angular7,angular7-router,Angular,Angular7,Angular7 Router,我创建了以下route guard: // #region Imports /* Angular */ import {Injectable} from '@angular/core'; import {CanActivate} from '@angular/router'; // #endregion Imports @Injectable() export class AuthenticationGuard implements CanActivate { // #region
// #region Imports
/* Angular */
import {Injectable} from '@angular/core';
import {CanActivate} from '@angular/router';
// #endregion Imports
@Injectable()
export class AuthenticationGuard implements CanActivate {
// #region Operations
public canActivate() : boolean {
return true;
}
// #endregion Operations
}
我的用法如下:
const routes : Routes = [
{
path: '',
redirectTo: 'admin',
pathMatch: 'full'
},
{
path: 'admin',
component: AdminComponent,
canActivate: [AuthenticationGuard]
},
{
path: 'signin',
component: SignInComponent
}
];
export const ApplicationRoutes : ModuleWithProviders = RouterModule.forRoot(routes);
我已将这两个模块导入到我的one模块中:
@NgModule({
imports: [
BrowserModule,
RouterModule,
HttpClientModule,
MatSnackBarModule,
ApplicationRoutes
],
declarations: [
ApplicationComponent,
SignInComponent
],
providers: [
{ provide: AuthenticationGuard }
],
bootstrap: [ApplicationComponent]
})
export class ApplicationModule {}
然而,当我运行我的应用程序时,Angular说:
Error: Uncaught (in promise): Error: Invalid CanActivate guard
Error: Invalid CanActivate guard
我的防护以何种方式无效?您需要通过
提供程序数组,如下所示
@NgModule({
imports: [
BrowserModule,
RouterModule,
HttpClientModule,
MatSnackBarModule,
ApplicationRoutes
],
declarations: [
ApplicationComponent,
SignInComponent
],
providers: [AuthenticationGuard],
bootstrap: [ApplicationComponent]
})
export class ApplicationModule {}
您需要传递提供程序数组,如下所示
@NgModule({
imports: [
BrowserModule,
RouterModule,
HttpClientModule,
MatSnackBarModule,
ApplicationRoutes
],
declarations: [
ApplicationComponent,
SignInComponent
],
providers: [AuthenticationGuard],
bootstrap: [ApplicationComponent]
})
export class ApplicationModule {}
试试这个providers:[AuthenticationGuard]
Huh,成功了,谢谢!作为答案发布请接受并投票:)像这样尝试providers:[AuthenticationGuard]
Huh,成功了,谢谢!作为答案发布,请接受并投票:)