我正在开发个人Angular项目。仍在努力学习和AngularJS移动到角:)Angular 2中的方法不确定或不可调用
这是我的代码:
import { Injectable } from '@angular/core';
import { CanActivate, Router } from '@angular/router';
import { LoginService } from './login.service';
@Injectable()
export class LoggedInGuard implements CanActivate {
constructor(
private _router: Router,
private _loginService: LoginService
) {
}
isLoggedIn() {
let token = localStorage.getItem('token');
if (token) {
this._loginService.isLoggedIn(token)
.subscribe(v => {
return v.status == 'ok';
});
} else {
return false;
}
};
canActivate() {
console.log(this.isLoggedIn());
if (this.isLoggedIn()) {
return true;
} else {
this._router.navigate(['/login']);
return false;
};
}
}
但我的问题是:
- 如果我继续
this.
在console.log(this.isLoggedIn());
则“不确定”打印出来。 - 如果我删除它,然后我对VS代码
[ts] Cannot find name 'isLoggedIn'. Did you mean the instance member 'this.isLoggedIn'?
下面的消息,并在控制台上Uncaught (in promise): ReferenceError: isLoggedIn is not defined
- 方法
isLoggedIn()
同样没有从那里我把它的其他文件有问题时使用。
打印undefined时是否登录?当您注销时,您可以尝试执行代码吗?我认为你正在调用所有东西,但'isLoggedIn'方法在所有情况下都不返回值。 –