在组件中,我称为dataservice方法'login',它调用post api。 res.json()给出了正确的答案。但是在组件中,当我尝试访问“数据”时,它在订阅中未定义。不知道我在这里做错了什么。请帮忙。
的DataService :
login(username, password): Observable<any>{
let data = { username: username, password: password};
return this.http.post( this.domain + '/webservice/login', data)
.map( (res: Response) => {
res.json()
})
.catch( (error: any) => Observable.throw(error.json().error || 'server error') );
}
组件:
callLoginApi() {
this.showLoading = true;
this.dataService.login(this.username,this.password)
.subscribe(data => {
console.log(data);
});
}
答案 0 :(得分:12)
替换
.map((res: Response) => {
res.json()
})
通过
.map((res: Response) => {
return res.json();
})
或
.map((res: Response) => res.json())
答案 1 :(得分:0)
已分配值,但未在Visual Studio中显示。如果在添加监视中使用_this而不是this,则可以看到这些值。 JavaScript使用_this。由于某些原因,订阅中的Visual Studio不支持它。