gpt4 book ai didi

typescript - Angular2 HTTP GET - 将响应转换为完整对象

转载 作者:太空狗 更新时间:2023-10-29 16:54:20 25 4
gpt4 key购买 nike

我有这个简单的组件

import {Component} from 'angular2/core';
import {RouterLink, RouteParams} from 'angular2/router';
import {Http, Response, Headers} from 'angular2/http';
import {User} from '../../models/user';
import 'rxjs/add/operator/map';


@Component({
template: `
<h1>{{user.name}} {{user.surname}}</h1>
`,
directives: [RouterLink],
})
export class UserComponent {

user: User;

constructor(private routeParams: RouteParams,
public http: Http) {
this.user = new User();
this.http.get('http://localhost:3000/user/' + this.routeParams.get('id'))
.map((res: Response) => res.json())
.subscribe((user: User) => this.user = user);
console.log(this.user);
}
}

为什么 subscribe 不将响应转换为完整的 User 对象。当我记录 user 变量时,我的控制台说 User {_id: undefined, name: undefined, surname: undefined, email: undefined}。但是在 View 中绑定(bind)到 .name.surname 是有效的..

这里发生了什么?用户实际存储在哪里?

最佳答案

好的做法是使用 GET 响应使用

Observable<Model>

(关于 Angular 文档 https://angular.io/guide/http )所以……

//导入

import {HttpClient} from "@angular/common/http";

//在构造函数参数列表中

private http: HttpClient

//服务方法

getUser(): Observable<User> {return this.http.get<User>({url}, {options});}

您无需再做任何事情。我认为这种方法最友好。

关于typescript - Angular2 HTTP GET - 将响应转换为完整对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36014161/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com