Мне интересно, как лучше всего отобразить ответ HTTP от запроса get к классу вместо базового объекта Javascript.
В моей текущей попытке я просто делаю new ClassName(data)
, но может быть неясное Angular указать и полностью устранить способ сделать это, что я не знаю.
Вот мой текущий код:
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);
}
Мне нужно, чтобы Post был классом, а не просто интерфейсом, потому что у меня есть методы внутри.
Я следил за HeroTutorial и http "руководство разработчика" и в их методе getHeroes
:
getHeroes () {
return this.http.get(this._heroesUrl)
.map(res => <Hero[]> res.json().data)
.catch(this.handleError);
}
Я как-то ожидал, что часть <Hero[]>
сделает именно это: возьмите класс Hero и создайте его новые экземпляры, но мои тесты показывают, что это не так, это просто для Typescript, чтобы знать, что ожидать.
Любые идеи? Спасибо!