42 lines
		
	
	
		
			949 B
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			42 lines
		
	
	
		
			949 B
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
// #docregion
 | 
						|
import { Component, OnInit } from '@angular/core';
 | 
						|
import { Router }            from '@angular/router';
 | 
						|
 | 
						|
import { Hero, HeroService } from '../model';
 | 
						|
 | 
						|
@Component({
 | 
						|
  moduleId: module.id,
 | 
						|
  selector: 'app-dashboard',
 | 
						|
  templateUrl: 'dashboard.component.html',
 | 
						|
  styleUrls: [ 'dashboard.component.css' ]
 | 
						|
})
 | 
						|
export class DashboardComponent implements OnInit {
 | 
						|
 | 
						|
  heroes: Hero[] = [];
 | 
						|
 | 
						|
  // #docregion ctor
 | 
						|
  constructor(
 | 
						|
    private router: Router,
 | 
						|
    private heroService: HeroService) {
 | 
						|
  }
 | 
						|
  // #enddocregion ctor
 | 
						|
 | 
						|
  ngOnInit() {
 | 
						|
    this.heroService.getHeroes()
 | 
						|
      .then(heroes => this.heroes = heroes.slice(1, 5));
 | 
						|
  }
 | 
						|
 | 
						|
  // #docregion goto-detail
 | 
						|
  gotoDetail(hero: Hero) {
 | 
						|
    let url = `/heroes/${hero.id}`;
 | 
						|
    this.router.navigateByUrl(url);
 | 
						|
  }
 | 
						|
  // #enddocregion goto-detail
 | 
						|
 | 
						|
  get title() {
 | 
						|
    let cnt = this.heroes.length;
 | 
						|
    return cnt === 0 ? 'No Heroes' :
 | 
						|
      cnt === 1 ? 'Top Hero' :  `Top ${cnt} Heroes`;
 | 
						|
  }
 | 
						|
}
 |