import { Component } from '@angular/core'; import { MissionService } from './mission.service'; @Component({ selector: 'app-mission-control', template: ` ‹h2›Mission Control‹/h2› ‹button (click)="announce()"›Announce mission‹/button› ‹app-astronaut *ngFor="let astronaut of astronauts" [astronaut]="astronaut"› ‹/app-astronaut› ‹h3›History‹/h3› ‹ul› ‹li *ngFor="let event of history"›{{event}}‹/li› ‹/ul› `, 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; } } }