ember.js 将highcharts yAxis.tickPositioner回调函数移出到某个util函数中

cnjp1d6j  于 2022-11-05  发布在  Highcharts
关注(0)|答案(1)|浏览(155)

我试图实现具有多个y轴的highcharts,需要为每个y轴设置yAxis.tickPositioner回调函数。因此,与其在每个回调中编写重复的代码,我需要创建一个util函数,我可以将dataMin和dataMax等值传递给该函数,而这些值只能在tickPositioner回调函数中访问。

chartOptions {
    xAxis: {
        tickPositions: [0, 1, 2, 4, 8]
    },

    yAxis: {
        tickPositioner: function () {
            var positions = [],
                tick = Math.floor(this.dataMin),
                increment = Math.ceil((this.dataMax - this.dataMin) / 6);

            if (this.dataMax !== null && this.dataMin !== null) {
                for (tick; tick - increment <= this.dataMax; tick += increment) {
                    positions.push(tick);
                }
            }
            return positions;
        }
    },
}

相反,我想要这样的东西,它在util函数中包含所有的值,如.dataMin和.dataMax

chartOptions {
        xAxis: {
            tickPositions: [0, 1, 2, 4, 8]
        },

        yAxis: {
            tickPositioner: this.utilFunction();
        },
    }

utilFunction() {
            var positions = [],
                tick = Math.floor(this.dataMin),
                increment = Math.ceil((this.dataMax - this.dataMin) / 6);

            if (this.dataMax !== null && this.dataMin !== null) {
                for (tick; tick - increment <= this.dataMax; tick += increment) {
                    positions.push(tick);
                }
            }
            return positions;
        }
txu3uszq

txu3uszq1#

如果按以下方式分配轴,则可以通过utilFunction中的this访问该轴:

yAxis: {
  tickPositioner: this.utilFunction
}

现场演示:http://jsfiddle.net/BlackLabel/6m4e8x0y/4958/

如果需要在函数中使用其他上下文,可以通过参数传递所需的值:

yAxis: {
  tickPositioner: function() {
    utilFunction(this.dataMin, this.dataMax);
  }
}

现场演示:http://jsfiddle.net/BlackLabel/6m4e8x0y/4959/

相关问题