2017-11-17 11 views
0

上に存在しない私が持っているクラスのよう角度2不動産の種類

export class R { 
constructor(
    public id: Number, 
    public dte: Date, 
    ) { } 

}

Rは、[]コードは次のようである返すサービス: `私は取得

return this.http.get(this.serverLocal).map(this.formatDate); 

    formatDate(res: Response) { 
    const data = res.json() as R[]; 
     data.forEach(D => { 
     D.dte = new Date(D.dte); 
    }) 
    return data; 
} 

2つのエラー:プロパティ 'dte'はタイプ 'R'には存在しません。 多くのコードを無駄に変更しました。 IDで変更しても、日付ではなく、変更しても機能します。私は間違って何をしていますか?

+0

あなたはデータを記録することができますか? –

+0

サービスが正常に動作していて、450レコードが得られます –

+0

この問題をstackblitzで複製できますか? –

答えて

1

角度5を使用している場合はHttpClientをご覧ください。json()はもう必要ありません。 http getはデフォルトで既にjsonを返します。

あなたのJSONレスポンスは、あなたは、単に次のことをしなければならない唯一のこれらの2つのエントリ(iddte)を持っている場合:あなたは、いくつかのエラー処理が必要な場合や、要求がエラーになる場合

. . . 

import { HttpClient } from '@angular/common/http'; 

/** rxjs **/ 
import { Observable } from 'rxjs/Observable'; 

getStuff(someUrl: string): Observable<Array<R>> { 
    return this.http.get(someUrl); 
} 

、例えば、リトライはあなたがそれをやりたい場合は、 "あなたが好きすべき、マッピングデータの実際の必要はありません

. . . 

import { HttpClient } from '@angular/common/http'; 

/** rxjs **/ 
import { Observable } from 'rxjs/Observable'; 
import 'rxjs/add/observable/throw'; 
import {catchError} from 'rxjs/operators/catchError'; 

getStuff(someUrl: string): Observable<Array<R>> { 
    return this.http.get(someUrl) 
     .pipe(
      retryWhen(errors => 
       // Do Stuff 
      ), 
      catchError((error: Error) => { 
       return Observable.throw(error); 
      }) 
     ); 
} 

、しかし:あなたのような何かを行う必要があります

data.map((dataEntry) => new R(dataEntry)) 

あなたはまだあなたがそれをして行くを取得する必要があります、角度4.x.xを使用している場合:

. . . 

import { Http } from '@angular/http'; 

/** rxjs **/ 
import { Observable } from 'rxjs/Observable'; 
import 'rxjs/add/observable/throw'; 
import {catchError} from 'rxjs/operators/catchError'; 

getStuff(someUrl: string): Observable<Array<R>> { 
    return this.http.get(someUrl) 
     .pipe(
      map((response: Response) => response.json()), 
      catchError((error: Error) => { 
       return Observable.throw(error); 
      }) 
     ); 
} 
関連する問題