Sto cercando di capire come mappare il risultato da una chiamata di servizio a un oggetto utilizzando http.get e Observables in angolare 2.Come mappare una risposta da http.get a una nuova istanza di un oggetto digitato in Angular 2
Date un'occhiata a questo Plunk
nel metodo getPersonWithGetProperty mi aspetto di tornare un'osservabile di tipo PersonWithGetProperty. Però! Non riesco ad accedere alla proprietà fullName. Immagino che dovrei creare una nuova istanza della classe PersonWithGetProperty e mappare la risposta a questo nuovo oggetto usando il costruttore della classe. Ma come si fa nel metodo 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()));
}
}
Grazie per la compensazione le cose per me! –
Che dire se hai un oggetto molto complesso o un oggetto che non puoi copiare usando solo il suo costruttore? Un oggetto senza costruttore, per esempio. –
@ CarlosAdrián quindi si utilizza una fabbrica di oggetti o si esternalizzano i metodi che si desidera utilizzare sull'oggetto. – paulpdaniels