angular-docs-cn/public/docs/_examples/toh-6/ts/app/hero-detail.component.ts
Patrice Chalin 3fe0fb077c docs(toh-6/ts): minor edits and enhancements (#1686)
* docs(toh-6/ts): minor edits and enhancements

Changes to prose:

- Complete TODO item of displaying `heroes.component` errors.
- Mainly copyedits.
- Add of blocks statements so that prose can be used on Dart side.
- Show excerpt and briefly explain of changes (previously missing):
  - `app/hero-detail.component.html`
  - `app/heroes.component.ts` error handling
- Add missing file to changed/added files listing and makeTabs
  - `toh-6/ts/app/in-memory-data.service.ts,
  - `toh-6/ts/sample.css`

Code changes:

- Mainly copyedits
- Renamed `heroes.component.ts` `delete` to `deleteHero` to match
naming of other methods

* remove unnecessary change relative to toh-5
2016-06-27 11:23:27 -07:00

61 lines
1.6 KiB
TypeScript

// #docplaster
// #docregion, variables-imports
import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';
// #enddocregion variables-imports
import { RouteParams } from '@angular/router-deprecated';
import { Hero } from './hero';
import { HeroService } from './hero.service';
@Component({
selector: 'my-hero-detail',
templateUrl: 'app/hero-detail.component.html',
styleUrls: ['app/hero-detail.component.css']
})
// #docregion variables-imports
export class HeroDetailComponent implements OnInit {
@Input() hero: Hero;
@Output() close = new EventEmitter();
error: any;
navigated = false; // true if navigated here
// #enddocregion variables-imports
constructor(
private heroService: HeroService,
private routeParams: RouteParams) {
}
// #docregion ngOnInit
ngOnInit() {
if (this.routeParams.get('id') !== null) {
let id = +this.routeParams.get('id');
this.navigated = true;
this.heroService.getHero(id)
.then(hero => this.hero = hero);
} else {
this.navigated = false;
this.hero = new Hero();
}
}
// #enddocregion ngOnInit
// #docregion save
save() {
this.heroService
.save(this.hero)
.then(hero => {
this.hero = hero; // saved hero, w/ id if new
this.goBack(hero);
})
.catch(error => this.error = error); // TODO: Display error message
}
// #enddocregion save
// #docregion goBack
goBack(savedHero: Hero = null) {
this.close.emit(savedHero);
if (this.navigated) { window.history.back(); }
}
// #enddocregion goBack
}