Это некоторые документально поведение, даже если документ, очевидно, дразня вас:
Это, как правило, индекс записи магазина, связанного с спрайта
Там, кажется, не быть информацией в аргументах, переданных рендереру, которые могут быть использованы для получения записи безошибочным способом ... Однако информация method that calls the renderer содержит информацию, поэтому простое сохранение может сохранить день (fixed fiddle):
// I like to name overrides after the overridden class, but do as per your tastes
Ext.define('MyApp.overrides.Ext.chart.series.sprite.Line.RendererIndex', {
override: 'Ext.chart.series.sprite.Line',
// The parent method will call the renderer, and knows the start index...
// but it won't give it to you, so let's help ourselve and store it now.
renderAggregates: function (aggregates, start, end, surface, ctx, clip, region) {
this.renderingRangeStart = start;
return this.callParent(arguments);
},
// Utility method to convert the index into some useful piece of information,
// that is a store record. The name is a bit circumvoluted in order to avoid
// collision with some future code from Sencha
getRecordAtRenderIndex: function(index) {
var store = this.getStore();
if (store) {
return store.getAt(this.renderingRangeStart + index);
}
}
});
В родительском методе, это линия, которая вызывает визуализатор:
markerCfg = attr.renderer.call(this, this, markerCfg, {store:this.getStore()}, i/3) || {};
Можно было искушение изменить эту строку, чтобы «исправить» аргументы, передаваемые в рендерер, но (1), что может разорвать другие существующие средства визуализации и (2), которые потребуют скопировать весь код метода, который всегда будет освещенным битом, беспокоящим будущее. Я думаю, что лучше всего «обойти» код; что стало возможным здесь легко, так как недостающая информация сидит в аргументах переопределенного метода.
Когда я увеличил масштаб - я вижу, что точки данных также перемещаются, что, я думаю, ожидается. Или, может быть, я не понимаю. Не могли бы вы также приложить скриншот? – Yellen
Я редактировал свой пост. Надеюсь, это делает проблему ясной. – stefan
Это озадачивает. Он входит в условие if дважды. попробуйте удалить это условие config.type === 'marker' и попытаться увеличить масштаб изображения ... вы заметите что-то, что может дать некоторые подсказки. – Yellen