Creating an Observable authentication service using BehaviorSubjects
One of the most obvious and useful cases of the Observer Pattern is the one in which a single entity in your application unidirectionally communicates information to a field of listeners on the outside. These listeners would like to be able to attach and detach freely from the single broadcasting entity. A good initial example of this is the login/logout component.
Note
The code, links, and a live example of this are available at http://ngcookbook.herokuapp.com/6957/.
Getting ready
Suppose you have the following skeleton application:
[app/login.component.ts]
import {Component} from '@angular/core';
@Component({
selector: 'login',
template: `
<button *ngIf="!loggedIn"
(click)="loggedIn=true">
Login
</button>
<button *ngIf="loggedIn"
(click)="loggedIn=false">
Logout
...