使用Angular2,我有一个http.get如下:
this.http.post('http://localhost/Authenticated/Token', loginData, options).subscribe(function (data) {
console.log(JSON.stringify(data, null, 4));
if (data.status === 200) {
this.response = data.json();
this.access_token = this.response.access_token;
alert(this.access_token);
}
});
在运行时正确设置this.access_token的值。但是一旦方法结束,它就会失去价值。我试图在方法中的其他地方使用它,但它说未定义。
修改
这是附加到按钮上的触发器的方法,我在看到上一个方法的响应后调用:
getBlogEntries() {
alert(this.access_token);
let headers = new Headers();
headers.append('Authorization', 'Bearer ' + this.access_token);
let options = new RequestOptions({
headers: headers
});
if (this.access_token) {
this.http.get('http://localhost/Authenticated/BlogEntries/', options).subscribe(result => {
this.blogEntries = result.json().Data;
console.log(this.blogEntries);
});
}
}
答案 0 :(得分:0)
尝试以下代码:
this.http.post('http://localhost/Authenticated/Token', loginData, options).subscribe(function (data) {
console.log(JSON.stringify(data, null, 4));
if (data.status === 200) {
this.response = data.json();
this.access_token = this.response.access_token;
alert(this.access_token);
}
}.bind(this));
它应该可以解决您的问题。
this.http.post('http://localhost/Authenticated/Token', loginData, options).subscribe((data) => {
console.log(JSON.stringify(data, null, 4));
if (data.status === 200) {
this.response = data.json();
this.access_token = this.response.access_token;
alert(this.access_token);
}
});