Angulaire 2 - Routage - CanActivate travailler avec Observables

J'ai un AuthGuard (utilisé pour le routage) qui implémente CanActivate.

canActivate() {
    return this.loginService.isLoggedIn();
}

Mon problème, c'est que le CanActivate-résultat dépend d'un http-get-résultat - le LoginService retourne un Observables.

isLoggedIn():Observable<boolean> {
    return this.http.get(ApiResources.LOGON).map(response => response.ok);
}

Comment puis-je apporter à ceux - faites CanActivate dépendent d'un backend de l'état?

  • Avez-vous lu ici? angular.io/docs/ts/latest/guide/router.html recherche de la Route des Gardes, Ici est la référence de l'api pour CanActivate: angulaire.io/docs/ts/latest/api/routeur/index/... comme vous le voyez, il peut retourner les booléens ou Observables<boolean>
  • canActivate() peut retourner un Observable, assurez-vous que le Observable a terminé (c'est à dire. observer.complete()).
  • que faire si l'observable émet plus de valeurs et réalise alors? Quel est le garde de le faire? Ce que j'ai vu jusqu'à présent est l'utilisation de take(1) Rx de l'opérateur à réaliser la completnes de flux, Que faire si j'ai oublié de l'ajouter?
InformationsquelleAutor Philipp | 2016-06-21