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
。控制台日志记录显示未定义
。
result
为我提供了正确且格式化的 JSON,但是当我尝试获取 result
变量并将其设置在 this.serverJSON
中时,它会抛出异常错误无法设置未定义的属性“serversJSON”
。
我想获取结果中保存的值并将其放入 serversJSON
中。
如何实现这一点?为什么 this
不可用?
最佳答案
您正在丢失回调函数中 this
的上下文。
使用粗箭头函数(保留 this
)。
xml2js.parseString(getString, (err, result) => {
this.serverJSON = result;
});
关于javascript - 'this' 在 Angular、XML2JS 中未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48703771/