Не могу достать d3.js привязка данных к работе
Возникли проблемы с привязкой новых данных к пузырьковой диаграмме D3. Мой AJAX-вызов API получает хороший JSON-ответ. Я проверил ответ, и он получает данные в том же формате, что и заданные в жестко закодированных данных, используемых для первоначальной настройки диаграммы. Должно быть, я что-то упустил, потому что моя диаграмма не показывает новых данных. Нужно ли мне перерисовывать диаграмму? Ниже приведено то, что я уже пробовал
Что я уже пробовал:
$(document).ready(function () { var uri = 'api/testing'; $.getJSON(uri, function (data, error) { //DATA BIND/START - NOT UPDATING CHART d3.selectAll("bubbleChart") .data(data) .enter().append("bubbleChart") .attr("text", function (d) { return d.text; }) .attr("count", function (d) { return d.count; }); //DAT BIND/END }); var bubbleChart = new d3.svg.BubbleChart({ supportResponsive: true, size: 600, innerRadius: 600 / 3.5, radiusMin: 50, data: { items: [ { text: "aaa", count: "236" }, { text: "bbb", count: "382" }, { text: "ccc", count: "170" }, { text: "ddd", count: "123" }, { text: kk, count: ll} ], eval: function (item) { return item.count; }, classed: function (item) { return item.text.split(" ").join(""); } }, plugins: [ { name: "central-click", options: { text: "(See more detail)", style: { "font-size": "12px", "font-style": "italic", "font-family": "Source Sans Pro, sans-serif", "text-anchor": "middle", "fill": "white" }, attr: { dy: "65px" }, centralClick: function () { alert("Here is more details!!"); } } }, { name: "lines", options: { format: [ {// Line #0 textField: "count", classed: { count: true }, style: { "font-size": "28px", "font-family": "Source Sans Pro, sans-serif", "text-anchor": "middle", fill: "white" }, attr: { dy: "0px", x: function (d) { return d.cx; }, y: function (d) { return d.cy; } } }, {// Line #1 textField: "text", classed: { text: true }, style: { "font-size": "14px", "font-family": "Source Sans Pro, sans-serif", "text-anchor": "middle", fill: "white" }, attr: { dy: "20px", x: function (d) { return d.cx; }, y: function (d) { return d.cy; } } } ], centralFormat: [ {// Line #0 style: { "font-size": "50px" }, attr: {} }, {// Line #1 style: { "font-size": "30px" }, attr: { dy: "40px" } } ] } }] }); }); function formatItem(item) { return 'text:' + item.text + ', count:' + item.count; }