export class ServerComponent {
servers:string[];
getString:any;
serversJSON:any;
constructor() {
}
ngOnInit() {
console.log("ngOnInit");
this.getXmlService.getData().subscribe((getString) =>
{
xml2js.parseString(getString, function (err, result) {
this.serverJSON = result; // This doesn't work
console.log(result); // This works
});
});
}
}
在此代码中,指示的行似乎无法访问this
。控制台日志记录显示undefined
。
result
为我提供了正确且格式化的JSON,但是当我尝试使用result
变量并在this.serverJSON
中设置它时,它会抛出错误Cannot set property 'serversJSON' of undefined
。
我想取结果中保存的值并将其放在serversJSON
中。
如何实现这一目标以及this
为什么不可用?
答案 0 :(得分:1)
您在回调函数中丢失了this
的上下文。
使用胖箭头功能(保留this
)代替。
xml2js.parseString(getString, (err, result) => {
this.serverJSON = result;
});