| 
									
										
										
										
											2015-12-16 19:38:07 -08:00
										 |  |  | //#docregion
 | 
					
						
							| 
									
										
										
										
											2015-12-14 20:05:13 -08:00
										 |  |  | import {Component} from 'angular2/core'; | 
					
						
							|  |  |  | // #docregion hero-import
 | 
					
						
							|  |  |  | import {Hero} from './hero'; | 
					
						
							|  |  |  | // #enddocregion hero-import
 | 
					
						
							|  |  |  | // #docregion hero-detail-import
 | 
					
						
							|  |  |  | import {HeroDetailComponent} from './hero-detail.component'; | 
					
						
							|  |  |  | // #enddocregion hero-detail-import
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | @Component({ | 
					
						
							|  |  |  |   selector: 'my-app', | 
					
						
							|  |  |  | // #docregion hero-detail-template
 | 
					
						
							|  |  |  |   template:`
 | 
					
						
							|  |  |  |     <h1>{{title}}</h1> | 
					
						
							|  |  |  |     <h2>My Heroes</h2> | 
					
						
							|  |  |  |     <ul class="heroes"> | 
					
						
							|  |  |  |       <li *ngFor="#hero of heroes" | 
					
						
							|  |  |  |         [class.selected]="hero === selectedHero" | 
					
						
							|  |  |  |         (click)="onSelect(hero)"> | 
					
						
							|  |  |  |         <span class="badge">{{hero.id}}</span> {{hero.name}} | 
					
						
							|  |  |  |       </li> | 
					
						
							|  |  |  |     </ul> | 
					
						
							|  |  |  |     <my-hero-detail [hero]="selectedHero"></my-hero-detail> | 
					
						
							|  |  |  |   `,
 | 
					
						
							|  |  |  | // #enddocregion hero-detail-template
 | 
					
						
							|  |  |  |   styles:[`
 | 
					
						
							|  |  |  |     .heroes {list-style-type: none; margin-left: 1em; padding: 0; width: 10em;} | 
					
						
							|  |  |  |     .heroes li { cursor: pointer; position: relative; left: 0; transition: all 0.2s ease; } | 
					
						
							|  |  |  |     .heroes li:hover {color: #369; background-color: #EEE; left: .2em;} | 
					
						
							|  |  |  |     .heroes .badge { | 
					
						
							|  |  |  |       font-size: small; | 
					
						
							|  |  |  |       color: white; | 
					
						
							|  |  |  |       padding: 0.1em 0.7em; | 
					
						
							|  |  |  |       background-color: #369; | 
					
						
							|  |  |  |       line-height: 1em; | 
					
						
							|  |  |  |       position: relative; | 
					
						
							|  |  |  |       left: -1px; | 
					
						
							|  |  |  |       top: -1px; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |     .selected { background-color: #EEE; color: #369; } | 
					
						
							|  |  |  |   `],
 | 
					
						
							| 
									
										
										
										
											2015-12-16 19:38:07 -08:00
										 |  |  | // #docregion directives
 | 
					
						
							| 
									
										
										
										
											2015-12-14 20:05:13 -08:00
										 |  |  |   directives: [HeroDetailComponent] | 
					
						
							| 
									
										
										
										
											2015-12-16 19:38:07 -08:00
										 |  |  | // #enddocregion directives
 | 
					
						
							| 
									
										
										
										
											2015-12-14 20:05:13 -08:00
										 |  |  | }) | 
					
						
							|  |  |  | export class AppComponent { | 
					
						
							|  |  |  |   public title = 'Tour of Heroes'; | 
					
						
							|  |  |  |   public heroes = HEROES; | 
					
						
							|  |  |  |   public selectedHero: Hero; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   onSelect(hero: Hero) { this.selectedHero = hero; } | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | var HEROES: Hero[] = [ | 
					
						
							|  |  |  |   { "id": 11, "name": "Mr. Nice" }, | 
					
						
							|  |  |  |   { "id": 12, "name": "Narco" }, | 
					
						
							|  |  |  |   { "id": 13, "name": "Bombasto" }, | 
					
						
							|  |  |  |   { "id": 14, "name": "Celeritas" }, | 
					
						
							|  |  |  |   { "id": 15, "name": "Magneta" }, | 
					
						
							|  |  |  |   { "id": 16, "name": "RubberMan" }, | 
					
						
							|  |  |  |   { "id": 17, "name": "Dynama" }, | 
					
						
							|  |  |  |   { "id": 18, "name": "Dr IQ" }, | 
					
						
							|  |  |  |   { "id": 19, "name": "Magma" }, | 
					
						
							|  |  |  |   { "id": 20, "name": "Tornado" } | 
					
						
							|  |  |  | ]; |