0

I Kreisdiagramm verwenden die Daten zu zeigen, hier ist mein Code Ich habe das folgende Skript hinzugefügtgoogle.visualization.PieChart ist kein Konstruktor

<script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script> 

    <script type="text/javascript"> 
     google.charts.load('current', { 'packages': ['corechart', 'gauge'] }); 

und meine Funktion, die verwendet wird, Chat angezeigt werden: -

self.DrawServiceGraph = function (obj) { 
       var dataArray = new Array(); 
       dataArray.push(['Services', 'Total']); 
       var subCat = ko.utils.arrayFirst(self.SelectedServiceSubCategoryList(), function (o) { return o.Id === obj.Id; }); 
       if (subCat !== undefined) { 
        $.each(subCat.SSC_List(), function (index, item) { 
         var value = parseInt(item.Value()); 
         dataArray.push([item.SSC_Name, value]); 
        }); 

        var data = google.visualization.arrayToDataTable(dataArray); 

        var options = { 
         title: '', height: 230, width: 330, 
         chartArea: { left: 0, width: '100%' }, 
         legend: { position: 'right', alignment: 'start', maxLines: 5, textStyle: { fontSize: 10 } } 
        }; 

        var chart = new google.visualization.PieChart(document.getElementById('Services-chart' + obj.Id)); 
        chart.draw(data, options); 
       } 
      } 

Dann habe ich den Fehler aus der Leitung:

google.visualization.Pie Diagramm ist kein Konstruktor und google.visualization.arrayToDataTable ist kein Konstruktor

Was sollten die möglichen Lösungen sein, um diese Fehler zu vermeiden?

+1

Bitte aktualisieren Sie Ihre Frage mit einem ** runnable ** [MCVE ] Verwenden von Stack Snippets (der '[<>]' Symbolleistenschaltfläche), um das Problem zu demonstrieren. –

Antwort

1

warten Sie auf die load Anweisung zu beenden?

die callback verwenden zu wissen, wann es in Ordnung ist Zeichnung zu beginnen ...

google.charts.load('current', { 
    callback: function() { 
    // begin drawing 
    }, 
    packages: ['corechart', 'gauge'] 
}); 

- oder -

google.charts.load('current', { 
    packages: ['corechart', 'gauge'] 
}); 
google.charts.setOnLoadCallback(function() { 
    // begin drawing 
}); 
+0

danke mann das ist die richtige antwort –