4
Observable
をサービスで使用するAngular 2 Appでは、内部のクラスのプライベートフィールドをどのように参照できますかmap
?下のコードに示すように、extractData
関数内のthis._dataStore
をどのように参照できますか?ありがとう!角2:Observable mapによって呼び出される関数内のクラス変数を参照する方法
私は() => {function body here}
の中に関数本体を置くことを示唆していたthis questionを見ましたが、実際にはこのロジックがおそらく他の場所で使用されることを望んでいます。コピーした場所の上にそれをすべて貼り付け)
@Injectable()
export class DataService{
constructor(private http: Http){}
private _dataStore = [];
getData(): Observable<any> {
if(this._dataStore.length > 0) { //return cached data
return Observable.of(this._dataStore);
} else {
return this.http.get('url')
.map(this.extractData)
.catch(this.handleError);
}
}
private extractData(res: Response){
if(res.status < 200 || res.status >= 300){
throw new Error('Bad response status '+ res.status);
}
var data = res.json();
for (var i in data['items']){
this._dataStore.push(data['items'][i]); //ERROR this._dataStore undefined
}
return this._dataStore;
}