ExtJS, отображающий имя поля внутри диаграммы

Рассмотрим следующий пример столбца с накоплением Диаграмма. Я могу отобразить количество каждого из полей (комедия, боевик, драма, триллер) в столбцах, добавив конфигурацию метки в серию, но как мне также отобразить имя поля? Свойство конфигурации рендерера для метки, по-видимому, не очень полезно, поскольку функция получает только количество в качестве аргумента.

label:{
  display:'insideStart'  ,
  field:[null, null, 'drama', 'thriller'],
  renderer:function(item){
    //For this case, item will be an int value. Thus, not sure how useful it is 
    //as we cannot get the field name from it.
  }          
}

person user2548144    schedule 31.07.2013    source источник


Ответы (1)


На самом деле функция визуализации передается a гораздо больше аргументов, чем просто значение. Эти аргументы аналогичны onPlaceLabel с добавлением значения в начало, и там они лучше документированы.

У нас есть index поля в ряду, и, по сути, у нас есть series, также доступный в аргументе item. При этом мы можем достичь того, чего вы хотите:

label: {
    display:'insideStart'
    ,field:[null, null, 'drama', 'thriller']
    ,renderer: function(value, label, storeItem, item, i, display, animate, index) {
        var series = item.series,
            titles = series.title;
        return titles && titles[index] || series.yField[index];
    }
}

Сначала я пытаюсь получить заголовок, потому что в реальной жизни я бы не стал отображать пользователю необработанное имя поля. Для справки, вот как вся серия будет настроена для этого. Его нет в документе, кроме комментария пользователя...

series: [{
    type: 'bar',
    axis: 'bottom',
    gutter: 80,
    xField: 'year',
    yField: ['comedy', 'action', 'drama', 'thriller'],
    title: ['Comédie', 'Action', 'Drame', 'Thriller'],
    stacked: true,
    label: {
        display:'insideStart'
        ,field:[null, null, 'drama', 'thriller']
        ,renderer: function(value, label, storeItem, item, i, display, animate, index) {
            var series = item.series,
                titles = series.title;
            return titles && titles[index] || item.yField;
        }
    }
}]
person rixo    schedule 31.07.2013
comment
Все параметры, кроме значения, не определены в функции рендерера. - person user2548144; 01.08.2013
comment
Вы уверены, что используете Ext4.2? - person rixo; 01.08.2013