私は個人的な角型プロジェクトに取り組んでいます。それでも学び、角度にAngularJSから移動しよう:)角度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;
};
}
}
私の問題があるしかし:
- 私はその後、「未定義」
console.log(this.isLoggedIn());
にthis.
を続ける場合印刷されます。私はそれを削除した場合 - 、その後、私はそれを呼び出す他のファイルから問題なく使用されているVSコード
[ts] Cannot find name 'isLoggedIn'. Did you mean the instance member 'this.isLoggedIn'?
に次のメッセージとコンソールUncaught (in promise): ReferenceError: isLoggedIn is not defined
- 方法
isLoggedIn()
で同じを持っています。
未定義が印刷されるとログインしていますか?ログアウトしたときにコードを実行してみることはできますか?私はすべてを正しく呼び出すと思いますが、 'isLoggedIn'メソッドはすべての場合に値を返しません。 –