1

我一直在努力弄清楚爲什麼我的Geochart沒有顯示。我搜索了谷歌,並沒有類似的問題的解決方案爲我工作。Google Geochart Google.Visualization.Datatable不是構造函數

我試圖在錯誤和顯示json數據的行之前添加一個警告框,並且我可以看到其中有數據。

任何提示將不勝感激。

<script type="text/javascript" src="https://www.google.com/jsapi"></script> 
<script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script> 
    <script type="text/javascript"> 
     google.charts.load('current', { 'packages': ['geochart']}); 
     google.charts.setOnLoadCallback(getDataForMap); 

     function getDataForMap() { 

      $.ajax({ 
       type: "POST", 
       url: "myWebService.asmx/getJSONData", 
       contentType: "application/json; charset=utf-8", 
       dataType: "json", 
       async: false, 
       timeout:600, 
       error: function (xhr, textStatus, error) { 
        alert("Error: " + error) 
       }, 
       complete:function(response) 
       { 
        var data = new google.visualization.DataTable(response); 
        //THIS IS WHERE IT ALWAYS STOPS WORKING 
        var chart = new google.visualization.GeoChart(document.getElementById('regions_div')); 
        var options = { 
         region: 'US', 
         displayMode: 'regions', 
         resolution: 'provinces', 
        }; 
        chart.draw(data, options); 
       } 

       })     
     }; 
    </script> 

回答

0

complete函數不返回任何數據
第一個參數是請求對象
看到 - >jQuery.ajax()

代替,請嘗試使用done回調

$.ajax({ 
    type: "POST", 
    url: "myWebService.asmx/getJSONData", 
    contentType: "application/json; charset=utf-8", 
    dataType: "json", 
    error: function (xhr, textStatus, error) { 
    alert("Error: " + error) 
    }, 
    done: function (response) { 
    var data = new google.visualization.DataTable(response); 
    var chart = new google.visualization.GeoChart(document.getElementById('regions_div')); 
    var options = { 
     region: 'US', 
     displayMode: 'regions', 
     resolution: 'provinces', 
    }; 
    chart.draw(data, options); 
    } 
}); 

也推薦不使用 - >async: false

+0

希望這會有所幫助 - 同樣,以這種方式使用DataTable構造函數,數據必須爲[此格式](https://developers.google.com/chart/interactive/docs/reference#dataparam )... – WhiteHat

+0

這個問題有什麼好運? – WhiteHat

0

有關不是構造函數的錯誤消息(如google.visualization.DataTable)意味着構造函數在您調用它的時候沒有被定義(關鍵字爲new)。所以除了WhiteHat提出的問題之外,你還需要調查一下。

查看你的代碼,我會懷疑問題是由加載jsapi加載器和gstatic圖表加載器造成的。現在只應該加載gstatic圖表加載器(有一段時間,GeoCharts既需要,也不需要當前版本)。但目前還不清楚爲什麼加載這兩個裝載器會導致這個問題,所以我的預感是在實際的整頁中會有更多的事情發生。