2

Use Case : I am trying to populate my chart based on the data fetched by Jquery.

$.getJSON("/dashboard/", function(data, status)
        {

            var test_data=data
            console.log(test_data)
            chart.data.datasets[0].data=test_data;
            chart.update();
        }

output of console.log(test_data)

 data: Array(3)
    0: 500
    1: 200
    2: 50
    length: 3

However this is not updating my chart .

Chart displays no values, without any error

Output of above code

When i hard code the value as shown below , the chart is getting updated.

$.getJSON("/dashboard/", function(data, status)
        {

            var test_data=data
            console.log(test_data)
            chart.data.datasets[0].data=[500,200,50];
            chart.update();
        } 

After hard coded value After hard coded What is the trick i am missing here?

Update

The problem was that i was not using the response of Ajax in my fucntion, i have updated my code like below and it worked

$.getJSON("/dashboard/", function(response, status)
        {

            chart.data.datasets[0].data=response.data;
            chart.update();
        }
        )
pankaj mishra
  • 2,099
  • 2
  • 13
  • 29

2 Answers2

2

Your response from API is object with data property, not just array with results

$.getJSON("/dashboard/", function(response, status)
        {
            chart.data.datasets[0].data = response.data;
            chart.update();
        } 
Gasanov
  • 2,264
  • 1
  • 7
  • 16
0

Your test_data is currently an object. You need to use

var test_data=data.data;

to access the array which is required.

Aman Garg
  • 2,399
  • 1
  • 9
  • 20