Добавление текста заголовка внутри датчика Dojo
Мне нужно вставить заголовок (не всплывающую подсказку, текст вверху) внутри svg, предоставленного Dojo. Как я могу это сделать?
Вот мой Dgauge: http://jsfiddle.net/MacroX/pZU93/1/
PD: линия
gauge.title = 'Test Report'
не показывает заголовок
2 ответа
Наконец, у меня есть способ решить эту проблему, и это полезно, когда вам нужно персонализировать свой dgauge. Вот пример: http://jsfiddle.net/MacroX/THJqV/
То, что я сделал, это в основном создал датчик, залил его белым фоном, а затем добавил элементы внутрь
var baseWidth = 400;
gauge.addElement("background", function (g) {
var auxHeight = baseWidth * objGauge.offsetHeight / objGauge.offsetWidth;
g.createRect({
width: 400, height: auxHeight
//width: 400, height: 300
}).setFill("#FFF");
});
Я не знаю, если это лучший способ, но работает, и я не нашел что-то подобное в других сайтах
И то, что я считаю отличным, это поддержка нескольких диаграмм dgauges только в одном SVG
Я надеюсь, что это будет полезно для кого-то еще
РЕДАКТИРОВАТЬ: Вопрос касается метки в верхней части датчика, а не title
атрибут, как я изначально думал.
Вы можете использовать TextIndicator
так же, как вы сделали для метки значения под иглой, но вы можете установить labelFunc
свойство, которое определяет функцию, вызываемую для установки метки, и отображает любую строку, возвращаемую из нее.
var labelText = new TextIndicator();
labelText.set('x', 73.3);
labelText.set('y', 55);
labelText.set('labelFunc', function() {return 'Test Report';});
gauge.addElement('labelText', labelText);
Вот модифицированная версия вашей скрипки с текстом заголовка на месте.
Ниже приведен оригинальный ответ на тот случай, если кому-то еще это понадобится
Пройти title
когда вы создаете датчик:
var gauge = new CircularLinearGauge({
title: 'Test Report'
}, dojo.byId("gauge"));
Вы также можете использовать set
установить его после создания датчика:
gauge.set('title', 'Test Report'); //does work :)
Причиной этого является то, что виджет датчика должен установить текст, который вы даете в качестве title
на конкретный элемент в шаблоне виджета. gauge.title
просто устанавливает title
свойство виджета датчика, и виджет не имеет представления, когда или с каким значением это свойство устанавливается, и, следовательно, не может сделать его видимым в качестве атрибута заголовка датчика.