gpt4 book ai didi

javascript - 'this' 在 Angular、XML2JS 中未定义

转载 作者:行者123 更新时间:2023-12-03 02:31:48 25 4
gpt4 key购买 nike

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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com