Добавление текста заголовка внутри датчика 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 свойство виджета датчика, и виджет не имеет представления, когда или с каким значением это свойство устанавливается, и, следовательно, не может сделать его видимым в качестве атрибута заголовка датчика.

Другие вопросы по тегам