je connecter avec facebook dans mon service angulaire (LoginService
)Comment obtenir le statut de connexion dans la variable
login() {
this.fb.login()
.then((response: LoginResponse) => this.logResponse = response)
.catch((error: any) => console.error(error));
}
Je veux surveiller logResponse
variable et dès qu'il change il convient d'examiner si l'utilisateur est connecté, que j'essaie de réaliser de différentes manières. Le dernier utilise ngOnChanges
ngOnChanges(changes: SimpleChanges) {
if (this.logResponse.status === 'connected') {
this.isConnected(true);
} else {
this.isConnected(false);
}
}
mais je suis incapable de changer la valeur de connectionOn
qui est responsable de l'état de connexion. Je suivais des variables dans mon service:
private connectionOn = new BehaviorSubject<boolean>(false);
connectionOn$ = this.connectionOn.asObservable();
@Input() logResponse: LoginResponse;
connectionOn
est observable qui est responsable de basculer bouton Connexion/Déconnexion dans login.component.ts, il y a getter et setter de connectionOn
mais il ne fonctionne pas dans mon service . Donc, la question principale est de savoir comment changer connectionOn
chaque fois que logResponse.status
est changé.
Mon code actuel: login.component.ts, login.service.ts
Après avoir reçu la réponse, vous devriez obtenir le corps de la réponse http en utilisant .json(). Je ferais .then ((réponse: LoginResponse) => this.logResponse = response.json()) – ashley
Il montre l'avertissement que la propriété json() n'existe pas sur le type LoginResponse. Mais le problème est de savoir comment obtenir la valeur réelle de 'ogResponse' et si nécessaire, basculer le' connectionOn' immédiatement. Merci @ashley –
Il devrait être res qui devrait être un type de réponse pas l'inverse. Pouvez-vous s'il vous plaît essayer cela? .then ((res: Response) => this.logResponse = res.json()) – ashley