這當是後衛:獲得 「不提供程序錯誤」 使用CanActivate後衛
// my.guard.ts
import { Injectable } from '@angular/core';
import { ActivatedRouteSnapshot, CanActivate, RouterStateSnapshot } from '@angular/router';
Injectable()
export class MyGuard implements CanActivate {
canActivate(next: ActivatedRouteSnapshot, prev: RouterStateSnapshot) {
console.log('GUARD:', next, prev);
return true;
}
}
這是路由器:
import { RouterConfig } from '@angular/router';
import { MyGuard } from './guards/my.guard';
export const AppRoutes : RouterConfig = [
{
path: 'home',
component: HomeComponent,
canActivate: [MyGuard]
}
];
頁面加載時我得到:
EXCEPTION: Error: Uncaught (in promise): No provider for MyGuard!
我沒有見過任何教程提及如何注入MyGuard作爲提供者。我該怎麼做呢?
我的問題是,這個班級警衛的名字已經用簡單的引號包起來了,就像:'''providers:['AuthGuard']''' – ruzenhack
謝謝,我將它添加到我的子模塊中並解決了問題。 – Hazlo8