Проблема с легендой диаграммы Extjs 5
-
21-12-2019 - |
Вопрос
Я пытаюсь добавить legend
к моим графикам extjs 5, и, похоже, это не работает.Это ошибка или я делаю что-то не так?
legend: {
docked: 'top',
style: {
borderColor: 'red',
borderStyle: 'solid'
}
}
Решение
Я некоторое время работал над этой же проблемой - и, наконец, отправил отчет об ошибке Sencha:
http://www.sencha.com/forum/showthread.php?289279-Sencha-5-Charts-Broken-Legend
Короче говоря, в следующем выпуске ExtJS "предположительно" будет исправление.К сожалению, сейчас это нам не помогает...
Однако вы можете создать tpl для легенды - но моя tpl не так надежна, как собственная легенда extjs.Он по-прежнему будет показывать / скрывать серию, но не маскирует серию в легенде.Я все еще дорабатываю TPL и опубликую обновление, как только оно заработает.
legend: {
docked: 'top',
border: 0,
style: { borderColor: 'red' },
tpl: [
'<tpl for=".">',
'<div class="myLegendItem" style="float:left;margin:5px;padding:0px;cursor:pointer;">',
'<div class="" style="float:left;margin:2px;width:10px;height: 10px; background:{mark};opacity:.6"></div><div style="float:left;">{name}</div>',
'</div>',
'</tpl>'
],
itemSelector: '.myLegendItem'
},
Другие советы
Чтобы замаскировать неактивные ряды в условных обозначениях, используйте троичный оператор для проверки значений.отключено
<div class="x-legend-container">
<tpl for=".">
<div class="x-legend-item {[ values.disabled ? Ext.baseCSSPrefix + 'legend-inactive' : '' ]}">
<span class="x-legend-item-marker" style="background:{mark};float:left;width:10px;height:10px;"></span>
<span style="float:left;margin-left:4px;">{name}</span>
</div>
</tpl>
</div>
Также, при необходимости, добавьте css-класс для
x-legend-inactive{
opacity: 0.5;
}