// #docregion import {Component} from 'angular2/core'; import {AstronautComponent} from './astronaut.component'; import {MissionService} from './mission.service'; @Component({ selector: 'mission-control', template: `

Mission Control

History

`, directives: [AstronautComponent], providers: [MissionService] }) export class MissionControlComponent { astronauts = ['Lovell', 'Swigert', 'Haise'] history: string[] = []; missions = ['Fly to the moon!', 'Fly to mars!', 'Fly to Vegas!']; nextMission = 0; constructor(private missionService: MissionService) { missionService.missionConfirmed$.subscribe( astronaut => { this.history.push(`${astronaut} confirmed the mission`); }) } announce() { let mission = this.missions[this.nextMission++]; this.missionService.announceMission(mission); this.history.push(`Mission "${mission}" announced`); if (this.nextMission >= this.missions.length) { this.nextMission = 0; } } } // #enddocregion