// #docregion import {Component, Input, OnDestroy} from 'angular2/core'; import {MissionService} from './mission.service'; import {Subscription} from 'rxjs/Subscription'; @Component({ selector: 'my-astronaut', template: `

{{astronaut}}: {{mission}}

` }) export class AstronautComponent implements OnDestroy{ @Input() astronaut: string; mission = ""; confirmed = false; announced = false; subscription:Subscription; constructor(private missionService: MissionService) { this.subscription = missionService.missionAnnounced$.subscribe( mission => { this.mission = mission; this.announced = true; this.confirmed = false; }) } confirm() { this.confirmed = true; this.missionService.confirmMission(this.astronaut); } ngOnDestroy(){ // prevent memory leak when component destroyed this.subscription.unsubscribe(); } } // #enddocregion