roo*_*ook 5 json rxjs angular-http angular
处理http响应的Сommon方法是这样的:
return this._http.get(url)
.map((res: Response) => res.json());
Run Code Online (Sandbox Code Playgroud)
这提供了一个Observable<Object[]>
其中Object
被动态创建从JSON反序列化类型.然后你可以在*ngFor="let item of result | async"
等等中使用这个结果......
我想获得一个特定的类型实例(意味着使用new
operator来调用类型的构造函数).尝试了不同的方法来实现这样的目标:
.map((res: Response) => { let obj = res.json(); return new MyObject(obj.id, obj.name);})
Run Code Online (Sandbox Code Playgroud)
但得到这个错误: Cannot find a differ supporting object '[object Object]' of type 'object'. NgFor only supports binding to Iterables such as Arrays.
这种方式似乎有效,但它过于复杂,可能无效:
.map((res: Response) => {
let results = <MyObject[]>[];
let obj = res.json();
obj.forEach(
function (o: any) {
results.push(new MyObject(o.id, o.name));
}
);
return results;
}
Run Code Online (Sandbox Code Playgroud)
谢谢!
尝试这个语法,将它转换为你的对象:
this.http.post(this.constants.taskUrl + parm, { headers: headers })
.map((response: Response) => {
var res = response.json();
var result = <DataResponseObject>response.json();
return result;
})
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
16779 次 |
最近记录: |