75 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
		
		
			
		
	
	
			75 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
| 
								 | 
							
								// #docregion pt2
							 | 
						||
| 
								 | 
							
								import {Component} from 'angular2/core';
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								interface Hero {
							 | 
						||
| 
								 | 
							
								  id: number;
							 | 
						||
| 
								 | 
							
								  name: string;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								@Component({
							 | 
						||
| 
								 | 
							
								  selector: 'my-app',
							 | 
						||
| 
								 | 
							
								  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>
							 | 
						||
| 
								 | 
							
								    <div *ngIf="selectedHero">
							 | 
						||
| 
								 | 
							
								      <h2>{{selectedHero.name}} details!</h2>
							 | 
						||
| 
								 | 
							
								      <div><label>id: </label>{{selectedHero.id}}</div>
							 | 
						||
| 
								 | 
							
								      <div>
							 | 
						||
| 
								 | 
							
								        <label>name: </label>
							 | 
						||
| 
								 | 
							
								        <input [(ngModel)]="selectedHero.name" placeholder="name"/>
							 | 
						||
| 
								 | 
							
								      </div>
							 | 
						||
| 
								 | 
							
								    </div>
							 | 
						||
| 
								 | 
							
								  `,
							 | 
						||
| 
								 | 
							
								  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; }
							 | 
						||
| 
								 | 
							
								  `]  
							 | 
						||
| 
								 | 
							
								})
							 | 
						||
| 
								 | 
							
								export class AppComponent {
							 | 
						||
| 
								 | 
							
								  public title = 'Tour of Heroes';
							 | 
						||
| 
								 | 
							
								  public heroes = HEROES;
							 | 
						||
| 
								 | 
							
								  public selectedHero: Hero;
							 | 
						||
| 
								 | 
							
								  
							 | 
						||
| 
								 | 
							
								  onSelect(hero: Hero) { this.selectedHero = hero; }
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								// #enddocregion pt2
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								// #docregion hero-array
							 | 
						||
| 
								 | 
							
								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" }
							 | 
						||
| 
								 | 
							
								];
							 | 
						||
| 
								 | 
							
								// #enddocregion hero-array
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								// #enddocregion pt2
							 |