如何在Legend-EXTJS -highcharts的labeFormatter函数中的Ext.each()中插入HTML

时间:2018-08-03 22:50:13

标签: extjs highcharts

我指的是Highcharts文档,但我不太了解如何在labelFormatter函数的EXT js循环内添加HTMl。 这是代码:

getLegendConfig: function() {
  var ct = this;
  return {
    align: 'right',
    verticalAlign: 'top',
    layout: 'vertical',
    x: -25,
    y: 25,
    borderWidth: 0,
    floating: type === 'column',
    itemMarginBottom: 5,
    labelFormatter: function() {
      var count = this.y || 0;
      Ext.each(ct.data.series, function(ct) {

        ct.data.map(function(pt) {
          if (pt !== null) {
            return [
              '<div>',
              Ext.util.Format.ellipsis("some name", 48),
              '<span class="qx-highchart-legend-item-count">',
              Ext.util.Format.number(pt.count, '0,000'),
              '</span>',
              '</div>'
            ].join('');
          }

        })


      });

    },
    useHTML: true
  };
}.createDelegate(this)

使用上面的代码,元素内部没有填充任何东西,不确定如何运行。有任何想法吗? 这是小提琴: https://fiddle.sencha.com/#view/editor&fiddle/2k5v 谢谢

1 个答案:

答案 0 :(得分:1)

由于您并没有真正的图表,只有getLegendConfig部分,因此很难给出确切的答案。但是,这可以回溯到您先前询问的带有值的面板的问题。因此,这是一个类似的示例,其中值显示在面板上:https://fiddle.sencha.com/#view/editor&fiddle/2k60

这是主要部分:

series.map((x) => {
  return x.data.map(function(pt) {
    if (pt !== null) {
      return [
        '<div>',
        Ext.util.Format.ellipsis("name", 48),
        '<span class="qx-highchart-legend-item-count">',
        Ext.util.Format.number(pt.count, '0,000'),
        '</span>',
        '</div>'
      ].join('');
    }
  })
}),

您必须使用代码compose,并查看是否获得所需的输出。根据我在上面给出的示例,这将在一个简单的面板上呈现您想要的值,因此它应该与您的作品一起使用。让我知道怎么回事。