2013-03-04 3 views
2

Я пытаюсь отображать данные с помощью API диаграммы Google, но, как ни странно, когда я загружаю API визуализации, функция обратного вызова не вызывается. Я создал скрипку в http://jsfiddle.net/jagzviruz/ZBMnh/Функция обратного вызова API диаграммы Google не получает вызов

var DonutChart = { 
data : [ 
    ['Sales', 20], 
    ['Returns', 12], 
    ['Pending', 80], 
    ['Processed',990] 
], 
init : function(){ 
    $.getScript('https://www.google.com/jsapi', this.loadPackages); 
}, 
loadPackages : function(){ 
    console.log('Loaded API.. now loading packages'); 
    var o = this; 
    google.load("visualization", "1", {packages:["corechart"]}); 
    google.setOnLoadCallback(o.renderData); 
}, 
renderData: function(){ 
    //console.log('Loaded Packages.. Now showing charts'); 
    alert('Render Data'); 
}}; 

DonutChart.init(); 

Я никогда не получить предупреждение. Другие сообщения консоли отображаются в порядке.

ответ

0

Использование DonutChar, а не this ссылаться указатель на функцию:

$.getScript('https://www.google.com/jsapi', DonutChart.loadPackages); 

init функция эквивалентна:

function foo() 
    { 
    $.getScript('https://www.google.com/jsapi', this.loadPackages); 
    } 

DonutChart.init = foo 

В результате, this равно foo, а не DonutChart.

Смежные вопросы