、それは別の場所で認証をチェックするvalue
だし、それは変化に反応するsubscribe()
方法です...どのよう
class AuthService {
public authenticated = new BehaviorSubject(null);
getAuthentication() {
this._http.get('/authenticate')
.map(response => response.json())
.map(json => Boolean(json)) // or whatever check you need...
.subscribe((value: boolean) => this.authenticated.next(value))
}
}
class Component {
constuctor(private _authService: AuthService) {
// Only check once even if component is
// destroyed and constructed again
if (this._authService.authenticated.value === null)
this._authService.getAuthentication();
}
onSubmit(){
if (!this._authService.authenticated.value)
throw new Error("You are authenticated!")
}
}
this.authenticated
の値が変更されたときに関数を実行しますか?
private _authenticated:Boolean = false;
get authenticated():Boolean {
return this._authenticated ;
}
set authenticated (authenticated Boolean) {
// Plugin some processing here
this._ authenticated = authenticated;
}
値を代入すると、「認証済みの設定:私はあなたがあなたのサービスの認証済みのプロパティが更新されたときに検出するために、活字体の取得/設定の構文を活用することができると考えて
this._authService.authenticated
.subscribe((value: boolean) => console.log(value))
こんにちは@サクサです。 5つのコンポーネント'home.component.ts'、' footer.component.ts'、 'navbar.component.ts'、' x.component.ts'、 'user.component.ts'です。これらの5つのコンポーネントを想定し、認証済みかどうかを確認したい場合私は以下のものを追加しなければなりません:コンストラクタ(private _authService:AuthService){...}これは正しいです? 5つのコンポーネントすべてに対して 'ngOnInit'を実行しますか?Angular2認証の概念を理解するには、いくつかの助けが必要です。 –
多くのオプション/選択肢があります...それはすべてあなたがやっていることに依存します。すべてのコンポーネントまたはルートコンポーネントでのみ認証できます。それは複雑なトピックですが、あなたは(あなたのアプリケーションのための最善のものを決定する必要があります;? – Sasxa
は、あなたがこのトピックについての議論/フォーラム/ブログ/記事に私を指すことができ –