У меня есть функция в моем представлении Backbone (file.js), которая заполняется ответом JSON в следующем формате: -
Функция в Backbone View: -
chart_data: function(){
var all_stats = this.collection.toJSON();
$("#page-container").html(this.users_by_loc({
platform_stats: all_stats,
graph_data: all_stats.items.slice(0,5)
// I want to use the top 5 entries to plot graph
}));
}
Ответ присутствует как часть all_stats (из моего вызова API - я использую Rails на стороне сервера): -
{
"items":
[
{
"loc": "Chennai",
"users": 11707
},
{
"loc": "Hyderabad",
"users": 4327
},
{
"loc": "Pune",
"users": 3625
},....(many more entries)
]
}
Теперь я пытаюсь передать ответ json, присутствующий в параметре graph_data (определенный в моем представлении Backbone выше), в переменную с именем chartData. который определен в моем шаблоне jst.ejs (код ниже). Эта переменная (chartData) используется моим JS-кодом AM-диаграмм для построения графика.
Мой файл jst.ejs, в котором есть код для заполнения данных графика и построения графика, выглядит следующим образом: -
<script>
var chart;
chartData = "<%= graph_data %>"
console.log("chartData: ", chartData);
AmCharts.ready(function () {
// SERIAL CHART
chart = new AmCharts.AmSerialChart();
chart.dataProvider = chartData;
//additional code to help plot the chart
chart.write("chartdiv");
});
</script>
<div id="chartdiv" style="width: 60%; height: 400px;"></div>
Моя текущая связка заключается в том, что когда я…
chartData = "<%= graph_data %>"
console.log("chartData: ", chartData);
.. в моем шаблоне jst.ejs переменная chartData вместо фактических данных как части all_stats (shown_above) возвращает в моей консоли firebug следующее: -
chartData: [object Object],[object Object],[object Object],[object Object],[object Object]
Как мне правильно назначить фактические данные, представленные в переменной graph_data (как часть моего основного представления), переменной chartData strong> присутствует в моем шаблоне jst.ejs для построения графика?
<script>
внутри шаблона? Почему бы не сделать JavaScript в JavaScript? - person mu is too short   schedule 04.09.2013<div id="chartdiv" style="width: 60%; height: 400px;"></div>
в моем шаблоне Backbone (файл jst.ejs), и будет ли это работать? - person boddhisattva   schedule 05.09.2013chart.write("chartdiv");
, присутствующая в моем представлении Backbone, не распознающаяchartdiv
в шаблоне. Могу ли я просто назначить данные как часть моей функции диаграмм AM 2, атрибутchart.dataProvider
n реализовать оставшееся вещество 2 нарисовать диаграмму в моем шаблоне jst.ejs? Если да, то как мне передать объект, которым я манипулирую в своей функции диаграмм AM, в качестве параметра для шаблона, чтобы я мог использовать его позже. 2 Нарисуйте график d. При таком подходе диаграмма будет распознана как часть логики рисования в шаблоне. - person boddhisattva   schedule 05.09.2013_.defer
илиsetTimeout(..., 0)
. - person mu is too short   schedule 05.09.2013chartdiv
по-прежнему остается пустым. - person boddhisattva   schedule 05.09.2013AmCharts.ready(function () {
и});
. После этого диаграмма отобразилась соответствующим образом. Пожалуйста, опубликуйте свой ответ, чтобы я мог его принять. - person boddhisattva   schedule 06.09.2013