0
我使用typescript創建了角2中的一些應用程序並添加了身份驗證。canActivated in angular2
我爲我的路由文件創建authguard:
@Injectable()
export class AuthGuard implements CanActivate {
public router: Router;
public serverThisLogin: ServerDataComponent;
constructor(router: Router) {
this.router = router;
}
public canActivate(): boolean {
if (this.serverThisLogin.isLogin) {
return true;
}
this.router.navigate(["/login"]);
return false;
}
}
這是isLogin()
功能:
public isLogin (username: string, password: string): Observable<boolean> {
return this.http.post(authURL + loginURL,
JSON.stringify({ password, username }))
.map((response: Response) => {
if (response.status === 200) {
return true;
} else {
return false;
}
});
}
我添加authguard在我的路由文件:
{ canActivate: [AuthGuard], component: LaskComponent, path: "table_per" }
而現在,當我加載此頁localhost/table_per
我有這個錯誤: TypeError: Cannot read property 'isLogin' of undefined
。 我真的明白爲什麼會發生。
你不注入ServerDataComponent ... – Dinistro