Angular 6 - 将数据传递给类变量时未定义

时间:2018-06-15 09:11:03

标签: angular typescript angular6

我有一个服务,在构造函数中我正在运行一个方法来获取一些数据。 我可以看到数据,然后将其传递给预定义的变量。

像这样:

export class SentinelService {

  configuration;

  constructor() {


    this.electronService.ipcRenderer.on('config' , function(event , data) {

      this.configuration = data; // pass the data to configuration variable

      console.log(this.configuration.name); // Check it ... I can see the value here


    });

  }


  myMethod() {

    // Try it here
    console.log(this.configuration.name); // I get Undefined

  };


  ...

虽然我已将值分配给'配置'变量,并且可以看到它已经从构造函数内部的方法传递,当我在另一个方法上尝试相同的东西时,我得到了未定义。

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:5)

使用箭头函数作为回调来保持类范围:

this.electronService.ipcRenderer.on('config' , (event , data) => {
  this.configuration = data; 
  ...

另外,请查看this以了解正常函数和箭头函数的不同之处。