带有登录检查的Angular2 Wrap组件

时间:2016-10-24 11:33:53

标签: angular typescript

我已经包装了几个组件'ngInit,并检查用户是否已登录:

export class ComponentX implements OnInit {
    constructor(private _authService: AuthService) {}
    ngOnInit() {
       if(this._authService.isLoggedIn()) {
          // Do stuff
       }
       else {
         // Redirect to loggin page
       }
    }
}

因为我真的不想重复自己,所以如果检查到其他可以应用于我想要的组件的其他地方,我想移动它。

我怎么能这样做?

1 个答案:

答案 0 :(得分:0)

正如Günter所做的那样

import { Injectable } from '@angular/core'
import { Router, CanActivate } from '@angular/router'
import { AuthUtils } from "./authUtils.service"


@Injectable()
export class AuthGuard implements CanActivate {
  constructor(private _router: Router, private _authUtils: AuthUtils) {}

  canActivate(): boolean {
    if(this._authUtils.isLogged()) {
        return true
    }
    else {
        this._router.navigate(["/login"])
        return false
    }
  }
}