http.getとObservablesを使用して、サービス呼び出しの結果をオブジェクトにマップする方法を理解しようとしていますアンギュラ2.http.getからの応答を、角型2の型付きオブジェクトの新しいインスタンスにマップする方法
に私はタイプPersonWithGetPropertyの観測を返すように期待していgetPersonWithGetProperty方法では、このPlunk
を見てみましょう。しかしながら! fullNameプロパティにアクセスできません。 クラスPersonWithGetPropertyの新しいインスタンスを作成し、クラスコンストラクタを使用してこの新しいオブジェクトにレスポンスをマップする必要があると思います。しかし、あなたはgetPersonWithGetPropertyメソッドでそれをどうやってやっていますか?
import {Injectable} from '@angular/core';
import {Http, Response} from '@angular/http';
import {Observable} from 'rxjs/Rx';
export class PersonWithGetProperty {
constructor(public firstName: string, public lastName: string){}
get fullName(): string {
return this.firstName + ' ' + this.lastName;
}
}
@Injectable()
export class PersonService {
constructor(private http: Http) {
}
getPersonWithGetProperty(): Observable<PersonWithGetProperty> {
return this.http.get('data/person.json')
.map((response: Response) => <PersonWithGetProperty>(response.json()));
}
}
は私のために物事を片付けてくれてありがとう! –
非常に複雑なオブジェクトや、そのコンストラクタだけを使ってコピーできないオブジェクトがあるとどうなりますか?例えば、コンストラクタを持たないオブジェクトです。 –
@CarlosAdrián次に、オブジェクトファクトリを使用するか、オブジェクトで使用するメソッドを外部化します。 – paulpdaniels