【发布时间】:2016-04-11 23:47:36
【问题描述】:
我有一个 service.ts 文件,其中包含从 JSON 提要获取数据的以下代码:
@Injectable()
export class HeroService {
constructor(private http: Http) { }
private _heroesUrl = '/heroes.json';
getHeroes() {
return this.http.get(this._heroesUrl)
.map(res => <Hero[]>res.json().data)
.do(data => console.log(data))
.catch(this.handleError);
}
private handleError(error: Response) {
console.error(error);
return Observable.throw(error.json().error || 'Server error');
}
getHero() {
//** code to go here
}
}
还有一个使用服务的组件文件:
export class HeroesComponent implements OnInit {
heroes: Hero[];
selectedHero: Hero;
errorMessage: any;
constructor(private _router: Router, private _heroService: HeroService) { }
getHeroes() {
this._heroService.getHeroes()
.subscribe(
heroes => this.heroes = heroes,
error => this.errorMessage = <any>error);
}
getHero() {
let id = this._routeParams.get('id');
//** code to go here
}
}
现在,getHeroes() 可以正常工作,并通过 service.ts 从 heros.json 中获取所有项目。但是,我要做的是使用项目的“id”从 heros.json 中只获取一个项目。我该怎么做呢?我尝试使用 .filter 但这没有用。谢谢
【问题讨论】:
标签: angular angular2-routing angular2-services