我对angular2还是个新手,对某些东西有点迷惑。
服务:
getReports() {
return this.http.get(GlobalVariable.BASE_API_URL + 'report/l', {headers: this.headers}).map(res => res.json());
}控制器:
document:any;
id:any;
ngOnInit() {
this.documentTypeService.getType(id).subscribe(data => {
document=data;
id= data.id;
console.log(id);
});
console.log(id); //undefined
}我需要ngOnInit()之外的id!
发布于 2018-01-04 21:09:44
尝试分配id,如下所示
this.id = data.id;
现在可以在ngOnIt()之外对id执行console.log操作,如下所示
console.log(this.id)
发布于 2018-01-04 21:08:31
您需要将值(data.id)赋值给变量(Id),如下所示。
document:any;
id:any;
ngOnInit() {
this.documentTypeService.getType(id).subscribe(data => {
document=data;
this.id= data.id;
console.log(this.id);
});
console.log(this.id);
}发布于 2018-01-04 21:20:33
您应该编写this.id来访问类字段。如下所示:
document:any;
id:any;
ngOnInit() {
this.documentTypeService.getType(id).subscribe(data => {
this.document = data;
this.id = data.id;
console.log(this.id);
});
console.log(this.id);
}第二个输入是undefined,这意味着当你调用console.log时,this.id仍然是空的-它们是同步执行的,而你试图访问还不存在的数据。
阅读有关异步\等待的信息。
https://stackoverflow.com/questions/48095971
复制相似问题