如何在Angular2中实现CanActivate防护

时间:2016-09-19 06:21:32

标签: angular

我正在尝试在我的服务中实现“CanActivate”方法,以下是 服务代码

printf()

编译此类型脚本代码时,会显示错误

  

类'GuardUserSearchService'错误地实现了接口'CanActivate'。

知道我的代码中存在什么问题。

3 个答案:

答案 0 :(得分:7)

您的服务必须实现此功能才能完全实现CanActivate接口:

canActivate(
  next: ActivatedRouteSnapshot,
  state: RouterStateSnapshot
): Observable<boolean> | Promise<boolean> | boolean { }

请注意,界面名称为CanActivate(大写C),而方法名称为canActivate(小写c)。

答案 1 :(得分:1)

根据the documentation,界面如下所示:

interface CanActivate {
    canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) : Observable<boolean>|Promise<boolean>|boolean
}

因此,您的实现缺少参数:

export class GuardUserSearchService implements CanActivate {
    canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {
        console.log('dummy guard clause for User search');
        return true;
    }
}

答案 2 :(得分:0)

只需一项更改-

#both C&A is capital
export class Guard implements CanActivate () {
-code-
}

#here only A is in capital dont follow CammelCase
canActivate(){ 
-code
});