Я пытаюсь понять, как сопоставить результат вызова службы с объектом с помощью http.get и Observables в угловом 2.Как сопоставить ответ от http.get к новому экземпляру типизированного объекта в Angular 2
Взгляните на этой Plunk
в методе getPersonWithGetProperty я ожидал, чтобы вернуться к заметному типа PersonWithGetProperty. Однако! Я не могу получить доступ к свойству 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