I use angular2 guards in this case authGuard, which looks like this: 

let isLoggidIn:boolean = false;
 this.userService.isUserLoggedIn$.subscribe(param 
        => { isLoggidIn = param; })
 if(isLoggidIn) { 
     return isLoggidIn; 
} else { 
    this.router.navigate(['/home']);
     return isLoggidIn; 
}

and I have http request, which initialize user is logged in or not. When I 
boostrap app before resolve http request, authGuard is called and it's 
redirected on home page. I want guard to be called after http request.

After this one I tried return Observable : 

return this.userService.isUserLoggedIn$.map(param => {
           if(param)
                return true;
            else {
                this.router.navigate(['/home'])                
                return false
            }
}).take(1)

cause this subscription is called once, after login request another pages, 
which are depended on authGuard are not navigated. I tried all kind of 
subjects, but it not working.

-- 
You received this message because you are subscribed to the Google Groups 
"AngularJS" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to angular+unsubscr...@googlegroups.com.
To post to this group, send email to angular@googlegroups.com.
Visit this group at https://groups.google.com/group/angular.
For more options, visit https://groups.google.com/d/optout.

Reply via email to