Мне интересно, как лучше всего отобразить ответ HTTP от запроса на получение класса вместо основного объекта Javascript.Угловая карта 2 ответа на экземпляр класса
В моей текущей попытке я просто делаю new ClassName(data)
, но там может быть неясное Угловое указание и полностью устрашающий способ сделать это, что я не знаю.
Вот мой текущий код:
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);
}
мне нужно сообщение, чтобы быть классом, а не просто интерфейс, потому что у меня есть методы внутри.
Я следовал HeroTutorial и HTTP «руководство разработчика» вместе и в их методе getHeroes
они делают:
getHeroes() {
return this.http.get(this._heroesUrl)
.map(res => <Hero[]> res.json().data)
.catch(this.handleError);
}
я как-то ожидал, что <Hero[]>
часть сделать именно это: Возьмите класс героя и создать новые экземпляры из этого, но мои тесты показывают, что это не так, это в значительной степени просто для машинописного машиностроения, чтобы знать, чего ожидать.
Любые идеи? Благодаря!
Это не связано с Angular или Http, но только с TypeScript => как десериализовать JSON для конкретного экземпляра класса. –
'new ClassName (data)' является полностью допустимым, вы можете связывать операторы и делать сопоставление, фильтровать, уменьшать ... Наблюдаемые не волнуют, что они обертывают (; – Sasxa
@ GünterZöchbauer Похоже, вы правы, быстрый поиск тех слова действительно вернули много результатов. Ни один из них на самом деле не то, что я хотел услышать, но я буду управлять чем-то, зная, что нет хорошего способа это сделать. – Growiel