マイapp.component角度2の問題は、私がここで理解していないのです何
import { Component, OnInit } from '@angular/core';
import { AngularFire } from 'angularfire2';
import { Subscription } from 'rxjs/Subscription';
import { MainService } from './main.service';
@Component({
selector: 'app-root',
templateUrl: './app.component.html'
})
export class AppComponent implements OnInit {
private logsub: Subscription;
private checking: string;
constructor(private af: AngularFire, private mainService: MainService){}
ngOnInit(){
this.logsub = this.mainService.userThere$.subscribe(isUser => {
if (isUser){
firebase.auth().onAuthStateChanged(function(user){
if (user){
this.mainService.userLogged(true);
alert("True");
}
else {
this.mainService.userLogged(false);
}
});
}
});
if (this.mainService.userLogged){alert("Fish");}
}
ngOnDestroy(){
this.logsub.unsubscribe();
}
}
マイmain.services
import { Injectable } from '@angular/core';
import { Subject } from 'rxjs/Subject';
@Injectable()
export class MainService {
private userThere = new Subject<boolean>();
userThere$ = this.userThere.asObservable();
userLogged(isUser: boolean){
this.userThere.next(isUser);
}
}
はこれです。私はユーザー認証コードを持っています。ユーザーがいる場合は、alert("True")
が返ってきます。また、userLogged
サブスクリプションをtrueに設定しました。
ページを読み込むと、ユーザーがいないことを確認できます。私はalert("True");
を取得しません。しかし、これより下には、テストコードif (this.mainService.userLogged){alert("Fish");}
が含まれています。
ユーザーがいないにもかかわらず、私はまだフィッシュに警告されています。
助け、関数として' userLogged'は –
が、どのように私は私のif文を再フォーマットするかもしれない定義されていますか? – abrahamlinkedin