-import { Component, OnInit, Input } from '@angular/core';
+import { Component, OnInit } from '@angular/core';
+import { ActivatedRoute } from '@angular/router';
+import { Location } from '@angular/common';
+
+import { HeroService } from '../hero.service';
import { Hero } from '../hero';
+import { MessageService } from '../message.service';
@Component({
selector: 'app-hero-detail',
})
export class HeroDetailComponent implements OnInit {
- @Input() hero : Hero;
+ hero: Hero | undefined;
- constructor() { }
+ constructor(
+ private route: ActivatedRoute,
+ private heroService: HeroService,
+ private messageService: MessageService,
+ private location: Location
+ ) { }
ngOnInit() {
+ this.getHero();
+ }
+
+ getHero(): void {
+ this.route.params.subscribe(params => {
+ const id: number = +params.id;
+ this.hero = undefined;
+ this.heroService.getHero(id).subscribe(hero => {
+ this.messageService.add('HeroDetailComponent: retrived hero ' + JSON.stringify(hero));
+ this.hero = hero;
+ });
+ });
}
+ goBack(): void {
+ this.location.back();
+ }
}