| 
									
										
										
										
											2016-06-08 16:24:56 -07:00
										 |  |  | // #docregion
 | 
					
						
							| 
									
										
										
										
											2016-04-08 15:10:37 -07:00
										 |  |  | import 'package:angular2/core.dart'; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class Hero { | 
					
						
							|  |  |  |   final int id; | 
					
						
							|  |  |  |   String name; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   Hero(this.id, this.name); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-06-28 08:16:59 -07:00
										 |  |  | // #docregion hero-array
 | 
					
						
							|  |  |  | final List<Hero> mockHeroes = [ | 
					
						
							|  |  |  |   new Hero(11, 'Mr. Nice'), | 
					
						
							|  |  |  |   new Hero(12, 'Narco'), | 
					
						
							|  |  |  |   new Hero(13, 'Bombasto'), | 
					
						
							|  |  |  |   new Hero(14, 'Celeritas'), | 
					
						
							|  |  |  |   new Hero(15, 'Magneta'), | 
					
						
							|  |  |  |   new Hero(16, 'RubberMan'), | 
					
						
							|  |  |  |   new Hero(17, 'Dynama'), | 
					
						
							|  |  |  |   new Hero(18, 'Dr IQ'), | 
					
						
							|  |  |  |   new Hero(19, 'Magma'), | 
					
						
							|  |  |  |   new Hero(20, 'Tornado') | 
					
						
							|  |  |  | ]; | 
					
						
							|  |  |  | // #enddocregion hero-array
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-04-08 15:10:37 -07:00
										 |  |  | @Component( | 
					
						
							|  |  |  |     selector: 'my-app', | 
					
						
							|  |  |  |     template: '''
 | 
					
						
							|  |  |  |       <h1>{{title}}</h1> | 
					
						
							|  |  |  |       <h2>My Heroes</h2> | 
					
						
							|  |  |  |       <ul class="heroes"> | 
					
						
							| 
									
										
										
										
											2016-04-30 07:01:16 -07:00
										 |  |  |         <li *ngFor="let hero of heroes" | 
					
						
							| 
									
										
										
										
											2016-04-08 15:10:37 -07:00
										 |  |  |           [class.selected]="hero == selectedHero" | 
					
						
							|  |  |  |           (click)="onSelect(hero)"> | 
					
						
							|  |  |  |           <span class="badge">{{hero.id}}</span> {{hero.name}} | 
					
						
							|  |  |  |         </li> | 
					
						
							|  |  |  |       </ul> | 
					
						
							|  |  |  |       <div *ngIf="selectedHero != null"> | 
					
						
							|  |  |  |         <h2>{{selectedHero.name}} details!</h2> | 
					
						
							|  |  |  |         <div><label>id: </label>{{selectedHero.id}}</div> | 
					
						
							|  |  |  |         <div> | 
					
						
							|  |  |  |           <label>name: </label> | 
					
						
							|  |  |  |           <input [(ngModel)]="selectedHero.name" placeholder="name"/> | 
					
						
							|  |  |  |         </div> | 
					
						
							|  |  |  |       </div> | 
					
						
							|  |  |  |     ''',
 | 
					
						
							| 
									
										
										
										
											2016-06-08 16:24:56 -07:00
										 |  |  | // #docregion styles
 | 
					
						
							| 
									
										
										
										
											2016-04-08 15:10:37 -07:00
										 |  |  |     styles: const [ | 
					
						
							|  |  |  |       '''
 | 
					
						
							|  |  |  |       .selected { | 
					
						
							|  |  |  |         background-color: #CFD8DC !important; | 
					
						
							|  |  |  |         color: white; | 
					
						
							|  |  |  |       } | 
					
						
							|  |  |  |       .heroes { | 
					
						
							|  |  |  |         margin: 0 0 2em 0; | 
					
						
							|  |  |  |         list-style-type: none; | 
					
						
							|  |  |  |         padding: 0; | 
					
						
							|  |  |  |         width: 10em; | 
					
						
							|  |  |  |       } | 
					
						
							|  |  |  |       .heroes li { | 
					
						
							|  |  |  |         cursor: pointer; | 
					
						
							|  |  |  |         position: relative; | 
					
						
							|  |  |  |         left: 0; | 
					
						
							|  |  |  |         background-color: #EEE; | 
					
						
							|  |  |  |         margin: .5em; | 
					
						
							|  |  |  |         padding: .3em 0em; | 
					
						
							|  |  |  |         height: 1.6em; | 
					
						
							|  |  |  |         border-radius: 4px; | 
					
						
							|  |  |  |       } | 
					
						
							|  |  |  |       .heroes li.selected:hover { | 
					
						
							|  |  |  |         color: white; | 
					
						
							|  |  |  |       } | 
					
						
							|  |  |  |       .heroes li:hover { | 
					
						
							|  |  |  |         color: #607D8B; | 
					
						
							|  |  |  |         background-color: #EEE; | 
					
						
							|  |  |  |         left: .1em; | 
					
						
							|  |  |  |       } | 
					
						
							|  |  |  |       .heroes .text { | 
					
						
							|  |  |  |         position: relative; | 
					
						
							|  |  |  |         top: -3px; | 
					
						
							|  |  |  |       } | 
					
						
							|  |  |  |       .heroes .badge { | 
					
						
							|  |  |  |         display: inline-block; | 
					
						
							|  |  |  |         font-size: small; | 
					
						
							|  |  |  |         color: white; | 
					
						
							|  |  |  |         padding: 0.8em 0.7em 0em 0.7em; | 
					
						
							|  |  |  |         background-color: #607D8B; | 
					
						
							|  |  |  |         line-height: 1em; | 
					
						
							|  |  |  |         position: relative; | 
					
						
							|  |  |  |         left: -1px; | 
					
						
							|  |  |  |         top: -4px; | 
					
						
							|  |  |  |         height: 1.8em; | 
					
						
							|  |  |  |         margin-right: .8em; | 
					
						
							|  |  |  |         border-radius: 4px 0px 0px 4px; | 
					
						
							|  |  |  |       } | 
					
						
							|  |  |  |     '''
 | 
					
						
							|  |  |  |     ]) | 
					
						
							| 
									
										
										
										
											2016-06-08 16:24:56 -07:00
										 |  |  | // #enddocregion styles
 | 
					
						
							| 
									
										
										
										
											2016-04-08 15:10:37 -07:00
										 |  |  | class AppComponent { | 
					
						
							|  |  |  |   final String title = 'Tour of Heroes'; | 
					
						
							|  |  |  |   final List<Hero> heroes = mockHeroes; | 
					
						
							| 
									
										
										
										
											2016-06-08 16:24:56 -07:00
										 |  |  | // #docregion selected-hero
 | 
					
						
							| 
									
										
										
										
											2016-04-08 15:10:37 -07:00
										 |  |  |   Hero selectedHero; | 
					
						
							| 
									
										
										
										
											2016-06-08 16:24:56 -07:00
										 |  |  | // #enddocregion selected-hero
 | 
					
						
							| 
									
										
										
										
											2016-04-08 15:10:37 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-06-08 16:24:56 -07:00
										 |  |  | // #docregion on-select
 | 
					
						
							| 
									
										
										
										
											2016-04-08 15:10:37 -07:00
										 |  |  |   onSelect(Hero hero) { | 
					
						
							|  |  |  |     selectedHero = hero; | 
					
						
							|  |  |  |   } | 
					
						
							| 
									
										
										
										
											2016-06-08 16:24:56 -07:00
										 |  |  | // #enddocregion on-select
 | 
					
						
							| 
									
										
										
										
											2016-04-08 15:10:37 -07:00
										 |  |  | } |