我有以下问题:我有一个http.post请求从服务器获取json数据。它正常运行,当我在这个方法中记录this.data时,我得到了所需的数据。但是,一旦我尝试调用此数据,该方法似乎不会以它应该的方式填充它。我想出了这么多,但不是为什么或如何解决这个问题。
authenticate(username, password) {
var creds = JSON.stringify({
UserName: username.value,
UserPassword: password.value,
SetDebug: true
});
var headers = new Headers();
headers.append('Content-Type', 'application/json');
// SERVER
this.http.post('http://demo/aariworx5/api/login/login', creds ,{headers: headers})
.subscribe(
res => {
this.data = res.json();
},
error => console.log(error)
);
}
答案 0 :(得分:2)
我猜您在设置之前访问this.data
。 subscribe(...)
最终会执行,但Angular2会在向服务器发出请求时继续执行其他操作。
您的问题没有提供足够的信息来提供更详细的指导如何解决问题。通常它就像
{{data.UserName}}
抛出。这可以通过安全导航(elvis)操作员来解决
{{data?.UserName}}