在设置对象中使用角度分量函数作为回调

时间:2018-10-09 14:53:01

标签: javascript angular typescript callback

问题也许很简单,但我对此很固执。

我有一个chartjs选项对象。其中有一个回调函数。

我需要在该函数(this.period)中使用某些组件的变量。

是否可能这样?

组件代码:

 @Input() period: string;

 public lineChartOptions: any = {
    responsive: true,
    // maintainAspectRatio: false
    scales: {
      xAxes: [{
        ticks: {
          max: 10,
          callback: (function(value, index, values) {
            this.wrapperXAxisCallback(value, index, values)
          })
        }
      }],
    }
  };

  wrapperXAxisCallback(value, index, values) {
    switch (this.period) {
      case '24hr':
        ..... break;
      case 'week':
        ..... break;
    }
  }

2 个答案:

答案 0 :(得分:4)

您要使用箭头功能,以便可以将组件(this)访问回调函数。

public lineChartOptions: any = {
responsive: true,
// maintainAspectRatio: false
scales: {
  xAxes: [{
    ticks: {
      max: 10,
      callback: ((value, index, values) => {
        this.wrapperXAxisCallback(value, index, values)
      })
    }
  }]
}
  };

在此处查看完整参考:

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Arrow_functions

答案 1 :(得分:3)

尝试一下

fedora28