* docs(toh-6/dart): refactoring of 'add, edit, delete heroes' Refactoring of "add, edit, delete heroes" section of toh-6 from one big bottom-up step into small independent feature slices, where the user achieves a "milesone" (i.e., can run the full app) after each feature section. The section rewrite is shorter and offers a better UX. Other simplifications: - Error handling is consistent: in the hero service we log to the console, everwhere else we just let errors bubble up. - Hero service methods renamed based on function (create, update) rather then lower-level implementation (post, put). - @Output properties have been eliminated (since they weren't explained). E2E tests now pass on both the TS and Dart sides. * docs(toh-6/ts): refactoring of 'add, edit, delete heroes' Refactoring of "add, edit, delete heroes" section of toh-6 from one big bottom-up step into small independent feature slices, where the user achieves a "milesone" (i.e., can run the full app) after each feature section. The section rewrite is shorter and offers a better UX. Other simplifications: - Error handling is consistent: in the hero service we log to the console, everwhere else we just let errors bubble up. - Hero service methods renamed based on function (create, update) rather then lower-level implementation (post, put). - @Output properties have been eliminated (since they weren't explained). E2E tests now pass on both the TS and Dart sides. Post-Dart-review updates included. * docs(toh-6): ward tweaks
		
			
				
	
	
		
			30 lines
		
	
	
		
			826 B
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			30 lines
		
	
	
		
			826 B
		
	
	
	
		
			HTML
		
	
	
	
	
	
| <!-- #docregion -->
 | |
| <h2>My Heroes</h2>
 | |
| <!-- #docregion add -->
 | |
| <div>
 | |
|   <label>Hero name:</label> <input #heroName />
 | |
|   <button (click)="add(heroName.value); heroName.value=''">
 | |
|     Add
 | |
|   </button>
 | |
| </div>
 | |
| <!-- #enddocregion add -->
 | |
| <ul class="heroes">
 | |
|   <!-- #docregion li-element -->
 | |
|   <li *ngFor="let hero of heroes" (click)="onSelect(hero)"
 | |
|       [class.selected]="hero === selectedHero">
 | |
|     <span class="badge">{{hero.id}}</span>
 | |
|     <span>{{hero.name}}</span>
 | |
|     <!-- #docregion delete -->
 | |
|     <button class="delete"
 | |
|       (click)="delete(hero); $event.stopPropagation()">x</button>
 | |
|     <!-- #enddocregion delete -->
 | |
|   </li>
 | |
|   <!-- #enddocregion li-element -->
 | |
| </ul>
 | |
| <div *ngIf="selectedHero">
 | |
|   <h2>
 | |
|     {{selectedHero.name | uppercase}} is my hero
 | |
|   </h2>
 | |
|   <button (click)="gotoDetail()">View Details</button>
 | |
| </div>
 |