内のコンポーネントへのサービスからのデータasynchron私は、JSONファイルからデータasynronフェッチしている職場サービスを持っていなさい:角度2
export class WorkplaceService{
private allWorkplaces:Workplace[] = new Array();
constructor(private http: Http){
this.readWorkplaceDataFromFile().subscribe(data => this.allWorkplaces=data, error => console.log(error));
}
private readWorkplaceDataFromFile(): Observable<Workplace[]> {
return this.http.get('assets/workplaces.json').map((response: Response) => {
return <Workplace[] > response.json()
}).catch(this.handleError);
}
public getAllWorkplaces():Workplace[] {
return this.allWorkplaces;
}
}
今、私は私のWorkplacesComponentにこのデータを取得する必要があります。
export class WorkplaceManagementComponent implements OnInit{
allWorkplaces: Workplace[] = new Array();
constructor(private storage: ProductionProgramStorage, private workplaces: WorkplaceService) {
}
ngOnInit() {
this.allWorkplaces = this.workplaces.getAllWorkplaces();
}
をしかし、私はasynchronのhttpリクエストがそうであるように、私のコンポーネントがinitilziedなると、データは私のサービスにロードされていない:私はこれをしようとしています。サービスからデータを取得するにはどうすればよいですか? コンポーネントでsubscribe()を使用したくありません。それは私のサービスを行う必要があります。
ありがとうございました。
あなたのサービスではどこにgetAllWorkplaces関数がありますか? –
私は自分の質問を編集しました。 –