2013-05-23 2 views
0

Недавно мы приобрели лицензию на highcharts и интегрировали ее с нашим приложением Grails.Функция форматирования всплывающих подсказок Highcharts

У нас возникают трудности с тем, что мы не можем указать форматировщик подсказок инструмента в возвращаемом объекте JSON, потому что кажется, что объект HighCharts JSON не соответствует стандартам JSON.

В частности, похоже, что JSON технически не разрешено использовать функции JavaScript как свойство объекта. На веб-сайте www.json.org:

Строка представляет собой последовательность из нуля или более символов Юникода, завернутую в двойные кавычки, с использованием обратных слэшей. Символ представляется как одна символьная строка. Строка очень похожа на строку C или Java.

Таким образом, когда мы выводим наши строки форматирования, он получает завернуты в двойных кавычках, например:

"formatter": "this.x + ': ' + this.y", 

Могут ли мы получить повышение, где мы указать подсказку (или подсказка-п) свойство в виде строки , который является именем функции javascript? Например:

"formatter": "myTooltipFn" 

, который вызывает функцию яваскрипта как:

myTooltipFn(chart) { 
    return chart.x 
} 
+0

существует Grails TOOLTIP плагин http://grails.org/plugin/ tooltip - прост в установке –

+0

это javascript http://searchco.de/codesearch/view/25243892 –

+0

[This] (http://stackoverflow.com/questions/2001449/is-it-valid-to-define- функции-in-json-results) могут оказаться полезными. В общем, вы можете передать функцию как строку, а затем использовать eval для этой строки, чтобы получить функцию. –

ответ

0

Я только что установил это после нескольких часов труда. Мое решение состояло в том, чтобы добавить форматтер к данным ПОСЛЕ того, как данные отправляются в формате JSON в браузер.

Так в основном, в файле JS, который имеет следующую строку:

$(blah).highcharts(data); 

записи ПЕРЕД этой линии:

Data.tooltip.formatter = function() { 
    //write function here 
} 
Смежные вопросы