私は、Router 3.0.0-aplha.8でAngular 2を使用しています。CanActivateをAngular 2で使用しているNoProviderError
CanActivate関数を使用して、ユーザーが認証されているかどうかを確認しようとしています。私はCanActivateを実装するAuthGuardを持っています。
route.ts
import { Injectable } from '@angular/core'
import { provideRouter, RouterConfig, CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot, Router} from '@angular/router';
import { AuthGuard } from './auth-guard'
import { SecurityComponent } from './security/security.component';
import { AdminDashboardComponent } from './admin/admin.dashboard.component';
export const mainRoutes: RouterConfig = [
{ path: '', component: SecurityComponent, },
{ path: 'admin', component: AdminDashboardComponent, terminal: true, canActivate: [AuthGuard] }]
export const MAIN_ROUTER_PROVIDER = provideRouter(mainRoutes);
のauth-guard.ts
import { Injectable } from '@angular/core';
import {
CanActivate,
Router,
ActivatedRouteSnapshot,
RouterStateSnapshot
} from '@angular/router';
@Injectable()
export class AuthGuard implements CanActivate {
constructor(private router: Router) {}
canActivate(next: ActivatedRouteSnapshot, state: RouterStateSnapshot){
return true;
}
}
私は "/管理者" にアクセスしてみてください(AdminDashboardComponentは)、私はこのエラーを取得しています:
何が起こっているのか分かりません。誰か考えている?
おかげ イバン・
ありがとうございました。このリストを含めるために、ブートストラップ機能を調整します!私は本当に立ち往生した。あなたの答えと@ ed-moralesの回答の違いは何ですか?ベストプラクティスは何ですか? もう一度おねがいします! – IvanMoreno
彼は他のレベルの抽象化を持っています。 –