Angular 2 - 服务中的路由

时间:2016-04-13 18:18:35

标签: angular

我创建了一项检查用户令牌的服务。

如果令牌未过期,则不执行任何操作。如果它已过期 - 将他重定向到登录页面。

我的服务。相关代码:

checkToken(myError) {
        if (myError.json().error == "token_expired")
        {
            console.log("Your token has expired.");
            this.router.navigate( ['Login'] ); //Returns error
        } else {
            console.log("Do nothing");
        }
    }

问题

EXCEPTION: TypeError: Cannot read property 'navigate' of undefined

我的服务。

    import {Component,Injectable} from "angular2/core";
import {Router} from 'angular2/router';


@Injectable()

export class JwtService {
    private jwtToken = localStorage.getItem("jwt");

    constructor(public router: Router) 

    getToken() {
        return this.jwtToken;
    }

    checkToken(myError) {
        if (myError.json().error == "token_expired")
        {
            console.log("Your token has expired.");
            this.router.navigate( ['Login'] );
        } else {
            console.log("Do nothing");
        }
    }
}

我的ROUTER_PROVIDERS位于我的boot.ts文件中:

bootstrap(AppComponent, [
  JwtService,
  HTTP_PROVIDERS,
  ROUTER_PROVIDERS
]);
那么为什么我无法从我的服务中导航?

1 个答案:

答案 0 :(得分:0)

constructor(public router: Router) 

应该是

constructor(public router: Router) {}