我想知道将get响应中的http响应映射到类而不是基本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);
}
Run Code Online (Sandbox Code Playgroud)
我需要Post成为一个类,而不仅仅是一个接口,因为我有内部方法.
我按照HeroTutorial和http"开发人员指南"进行操作,并按照他们的getHeroes
方法执行:
getHeroes () {
return this.http.get(this._heroesUrl)
.map(res => <Hero[]> res.json().data)
.catch(this.handleError);
}
Run Code Online (Sandbox Code Playgroud)
我不知何故希望这<Hero[]>
部分能做到这一点:拿Hero类并创建它的新实例,但我的测试表明它没有,这几乎只是Typescript知道会发生什么.
有任何想法吗 ?谢谢!
Thi*_*ier 17
我认为你可以使用map
JavaScript对象的方法:
getHeroes () {
return this.http.get(this._heroesUrl)
.map(res => {
return res.json().data.map((elt) => {
// Use elt to create an instance of Hero
return new Hero(...);
});
})
.catch(this.handleError);
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
7980 次 |
最近记录: |