0
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。我想将 result 中保存的值放入serversJSON. 如何实现这一点,为什么this不可用?

4

1 回答 1

1

您正在丢失this回调函数中的上下文。

请改用粗箭头函数(保留this)。

xml2js.parseString(getString, (err, result) => {
  this.serverJSON = result;
});
于 2018-02-09T10:34:37.543 回答