这是我的服务器数据:
[
{
"name" : "testname"
},
{
"name" : "testnametwo"
}
]
我正在尝试使用Angular2 http.get获取此数据。我正在尝试下面的代码:
private _url : string = "appone/api/user.json"
user = []
constructor(private http : Http) { }
getUsers() {
let res = this.http.get(this._url).map((response : Response) => {
return response.json()
})
res.subscribe((data) => {
this.user = data
})
alert(this.user.name)
}
但我没有得到任何结果。我不知道我错在哪里。
非常感谢任何帮助。
答案 0 :(得分:0)
代码订阅响应,并在this.user
异步返回时设置http.get
。因此alert
会在设置user
之前触发。
答案 1 :(得分:0)
您的提醒需要放在订阅中。
getUsers() {
let res = this.http.get(this._url).map((response : Response) => {
return response.json()
})
res.subscribe((data) => {
this.user = data;
alert(this.user.name);
})
}
说明:您的API可能需要一些时间才能返回数据,并且会异步调用它。因此,即使在API返回您的数据之前,也会调用您的警报。
Subscribe
仅在从API获取数据时才会被调用,因此它是一个适当的记录位置。另外,请将记录错误视为一种良好做法。