Resposta http do mapa angular 2 à instância da classe
Gostaria de saber qual é a melhor maneira de mapear a resposta http de uma solicitação get para uma classe em vez de um objeto Javascript básico.
Na minha tentativa atual, eu simplesmente façonew ClassName(data)
, mas pode haver uma especificação Angular obscura e uma maneira completamente incrível de fazer isso que eu não conheço.
Aqui está o meu código atual:
getPost(id:number){
return this._http.get(this._postsUrl+'/'+id)
.map(res => new Post(res.json().data))
.do(data => console.log(data))
.catch(this.handleError);
}
Preciso que o Post seja uma classe e não apenas uma interface, porque tenho métodos internos.
Eu segui o HeroTutorial e o http "guia do desenvolvedor" ao longo e em suasgetHeroes
método que eles fazem:
getHeroes () {
return this.http.get(this._heroesUrl)
.map(res => <Hero[]> res.json().data)
.catch(this.handleError);
}
De alguma forma eu esperava o<Hero[]>
parte para fazer exatamente isso: pegue a classe Hero e crie novas instâncias, mas meus testes mostram que isso não acontece, isso significa que o Typescript sabe o que esperar.
Alguma ideia ? Obrigado!