angular-cn/public/docs/_examples/toh-5/dart/lib/heroes_component.dart
Patrice Chalin f8e6b5d1f7 docs(toh-5/dart): make dashboard more robust (#1688)
Originally the dashboard TS expression ``heroes.slice(1, 5))` had been
written as:

> _heroService.getHeroes().getRange(1, 5)

which is brittle; it fails if there are not enough heroes. Slice
doesn't fail; an equivalent express
ion in Dart is

> _heroService.getHeroes().skip(1).take(4)

This is now used.

Other changes:
- Fix in css (missed TS-side update).
- Ran `dartfmt` on `heroes_component.dart`.
2016-06-28 13:15:29 -07:00

49 lines
1.2 KiB
Dart

// #docplaster
// #docregion
import 'dart:async';
import 'package:angular2/core.dart';
import 'package:angular2/router.dart';
import 'hero.dart';
import 'hero_detail_component.dart';
import 'hero_service.dart';
// #docregion metadata, heroes-component-renaming
@Component(
selector: 'my-heroes',
// #enddocregion heroes-component-renaming
templateUrl: 'heroes_component.html',
styleUrls: const ['heroes_component.css'],
directives: const [HeroDetailComponent])
// #docregion heroes-component-renaming
// #enddocregion heroes-component-renaming, metadata
// #docregion class, heroes-component-renaming
class HeroesComponent implements OnInit {
// #enddocregion heroes-component-renaming
final Router _router;
final HeroService _heroService;
List<Hero> heroes;
Hero selectedHero;
HeroesComponent(this._heroService, this._router);
Future<Null> getHeroes() async {
heroes = await _heroService.getHeroes();
}
void ngOnInit() {
getHeroes();
}
void onSelect(Hero hero) {
selectedHero = hero;
}
Future<Null> gotoDetail() => _router.navigate([
'HeroDetail',
{'id': selectedHero.id.toString()}
]);
// #docregion heroes-component-renaming
}