Javascript ';这';在Angular、XML2JS中未定义
在此代码中,指示的行似乎无法访问此。控制台日志显示未定义的Javascript ';这';在Angular、XML2JS中未定义,javascript,angular,angular5,xml2js,Javascript,Angular,Angular5,Xml2js,在此代码中,指示的行似乎无法访问此。控制台日志显示未定义的。 result为我提供了一个正确且格式化的JSON,但是当我尝试获取result变量并在this.serverJSON中设置它时,它会抛出一个错误无法设置未定义的属性“serversJSON”。 我想获取result中保存的值并将其放入serversJSON。 如何实现这一点,以及为什么此不可用?您正在失去回调函数中此的上下文 改为使用胖箭头函数(保留此) 这是正常功能和箭头功能之间的区别。:)只是想知道为什么您先使用箭头,然后切换到函
。
result
为我提供了一个正确且格式化的JSON,但是当我尝试获取result
变量并在this.serverJSON
中设置它时,它会抛出一个错误无法设置未定义的属性“serversJSON”
。
我想获取result中保存的值并将其放入serversJSON
。
如何实现这一点,以及为什么
此
不可用?您正在失去回调函数中此
的上下文
改为使用胖箭头函数(保留此)
这是正常功能和箭头功能之间的区别。:)只是想知道为什么您先使用箭头,然后切换到函数表达式?我看到
=>
已经在您的代码中使用了。我想你不知道它是干什么的?如果是这样,建议阅读“箭头函数”。@dfsq,您是正确的。谢谢你给我指明了正确的方向。不使用箭头功能有好处吗?@vc669您也可以使用功能
,但在这种情况下,不使用箭头功能没有意义。使用(err,result)=>{
。它可以很好地处理这个问题。
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
});
});
}
}
xml2js.parseString(getString, (err, result) => {
this.serverJSON = result;
});