Javascript 未捕获(承诺中)错误:未定义容器

Javascript 未捕获(承诺中)错误:未定义容器,javascript,jquery,ajax,google-visualization,pygooglechart,Javascript,Jquery,Ajax,Google Visualization,Pygooglechart,我在我的代码点火器应用程序中使用了谷歌图表(饼图)。我在我的仪表板视图页面上显示图表,并且得到了正确的结果。但是当我检查其他页面时,我发现了一个错误 未捕获(承诺中)错误:未定义容器 错误: <script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script> <script type="text/javascript"> $(documen

我在我的代码点火器应用程序中使用了谷歌图表(饼图)。我在我的仪表板视图页面上显示图表,并且得到了正确的结果。但是当我检查其他页面时,我发现了一个错误

未捕获(承诺中)错误:未定义容器

错误:

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

  <script type="text/javascript">
    $(document).ready(function(){
      $.ajax({
        url: "<?php echo base_url().'Dashboard/chartData'; ?>",
        dataType: "JSON",
        success:function(result){
          google.charts.load('current',{
            'packages':['corechart']
          });
          google.charts.setOnLoadCallback(function(){
            drawChart(result);
          });
          //alert(result);
        }
      });

      function drawChart(result) {
        var data = new google.visualization.DataTable();
        data.addColumn('string', 'Name');
        data.addColumn('number', 'defects');

        var dataArray = [];

        $.each(result, function(i, obj) {
          dataArray.push([obj.name, parseInt(obj.defects)]);
        });

        data.addRows(dataArray);

        var piechart_options = {
          title : 'Defects Registered',
          width : 500,
          height: 300,
          is3D: true,
        };
        var piechart = new google.visualization.PieChart(document.getElementById('piechart_div'));
        piechart.draw(data, piechart_options);
      }
    });
  </script>
<div class="box-body">
    <table class="columns">
        <tr>
            <td>
                <div class="col-md-6" id="piechart_div"></div>
            </td>
            <td>
                <div class="col-md-6" id="donutchart_div"></div>
            </td>
        </tr>
    </table>
</div>
未捕获(承诺中)错误:未定义容器

在gvjs_3m(jsapi_编译的_默认的_module.js:66)

在gvjs_9K.gvjs_7p[作为建造商] (jsapi_编译_默认_module.js:232)

在gvjs_9K.gvjs_8K[作为构造函数](jsapi_编译的_ui_module.js:979)

在新的gvjs_9K上(jsapi_编译的ui_module.js:1010)

在绘图图上(陆上加:648)

地址:623

我的图表代码:

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

  <script type="text/javascript">
    $(document).ready(function(){
      $.ajax({
        url: "<?php echo base_url().'Dashboard/chartData'; ?>",
        dataType: "JSON",
        success:function(result){
          google.charts.load('current',{
            'packages':['corechart']
          });
          google.charts.setOnLoadCallback(function(){
            drawChart(result);
          });
          //alert(result);
        }
      });

      function drawChart(result) {
        var data = new google.visualization.DataTable();
        data.addColumn('string', 'Name');
        data.addColumn('number', 'defects');

        var dataArray = [];

        $.each(result, function(i, obj) {
          dataArray.push([obj.name, parseInt(obj.defects)]);
        });

        data.addRows(dataArray);

        var piechart_options = {
          title : 'Defects Registered',
          width : 500,
          height: 300,
          is3D: true,
        };
        var piechart = new google.visualization.PieChart(document.getElementById('piechart_div'));
        piechart.draw(data, piechart_options);
      }
    });
  </script>
<div class="box-body">
    <table class="columns">
        <tr>
            <td>
                <div class="col-md-6" id="piechart_div"></div>
            </td>
            <td>
                <div class="col-md-6" id="donutchart_div"></div>
            </td>
        </tr>
    </table>
</div>

$(文档).ready(函数(){
$.ajax({
url:“”,
数据类型:“JSON”,
成功:功能(结果){
google.charts.load('current'{
“包”:[“核心图表”]
});
google.charts.setOnLoadCallback(函数(){
绘图(结果);
});
//警报(结果);
}
});
功能图(结果){
var data=new google.visualization.DataTable();
data.addColumn('string','Name');
data.addColumn('number','defects');
var dataArray=[];
$。每个(结果、功能(i、obj){
push([obj.name,parseInt(obj.defects)];
});
data.addRows(dataArray);
var PIEU选项={
标题:“已登记缺陷”,
宽度:500,
身高:300,
is3D:是的,
};
var piechart=new google.visualization.piechart(document.getElementById('piechart_div');
绘制(数据、图形和选项);
}
});
HTML代码:

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

  <script type="text/javascript">
    $(document).ready(function(){
      $.ajax({
        url: "<?php echo base_url().'Dashboard/chartData'; ?>",
        dataType: "JSON",
        success:function(result){
          google.charts.load('current',{
            'packages':['corechart']
          });
          google.charts.setOnLoadCallback(function(){
            drawChart(result);
          });
          //alert(result);
        }
      });

      function drawChart(result) {
        var data = new google.visualization.DataTable();
        data.addColumn('string', 'Name');
        data.addColumn('number', 'defects');

        var dataArray = [];

        $.each(result, function(i, obj) {
          dataArray.push([obj.name, parseInt(obj.defects)]);
        });

        data.addRows(dataArray);

        var piechart_options = {
          title : 'Defects Registered',
          width : 500,
          height: 300,
          is3D: true,
        };
        var piechart = new google.visualization.PieChart(document.getElementById('piechart_div'));
        piechart.draw(data, piechart_options);
      }
    });
  </script>
<div class="box-body">
    <table class="columns">
        <tr>
            <td>
                <div class="col-md-6" id="piechart_div"></div>
            </td>
            <td>
                <div class="col-md-6" id="donutchart_div"></div>
            </td>
        </tr>
    </table>
</div>

我搞不懂为什么我在其他页面上看到了错误,而不是在仪表板上看到了错误


欢迎任何帮助,提前感谢。

尽管这可能无法解决您的问题,
实际上,您可以使用
google.charts.load
而不是-->
$(document.ready

默认情况下,
google.charts.load
将等待文档准备就绪

推荐一个稍微不同的设置

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

google.charts.load('current', {
  packages:['corechart']
}).then(function () {
  $.ajax({
    url: "<?php echo base_url().'Dashboard/chartData'; ?>",
    dataType: "JSON",
    success:function(result){
      drawChart(result);
    }
  });

  function drawChart(result) {
    var data = new google.visualization.DataTable();
    data.addColumn('string', 'Name');
    data.addColumn('number', 'defects');

    var dataArray = [];

    $.each(result, function(i, obj) {
      dataArray.push([obj.name, parseInt(obj.defects)]);
    });

    data.addRows(dataArray);

    var piechart_options = {
      title : 'Defects Registered',
      width : 500,
      height: 300,
      is3D: true,
    };
    var piechart = new google.visualization.PieChart(document.getElementById('piechart_div'));
    piechart.draw(data, piechart_options);
  }
});

</script>

错误
回调中替换硬编码数据,
你发布的代码工作正常

请参阅下面的工作代码段

google.charts.load('current'{
软件包:['corechart']
}).然后(函数(){
$.ajax({
url:“”,
数据类型:“JSON”,
成功:功能(结果){
绘图(结果);
},
错误:函数(){
var结果=[
{name:'defect 1',defect:'1'},
{name:'defect 2',defect:'2'},
{name:'defect 3',defect:'3'},
{name:'defect 4',defect:'4'},
{name:'defect 5',defect:'5'}
];
绘图(结果);
}
});
功能图(结果){
var data=new google.visualization.DataTable();
data.addColumn('string','Name');
data.addColumn('number','defects');
var dataArray=[];
$。每个(结果、功能(i、obj){
push([obj.name,parseInt(obj.defects)];
});
data.addRows(dataArray);
var PIEU选项={
标题:“已登记缺陷”,
宽度:500,
身高:300,
is3D:是的,
};
var piechart=new google.visualization.piechart(document.getElementById('piechart_div');
绘制(数据、图形和选项);
}
});


@WhiteHat是的,我刚刚更新了我的问题,请检查。这段代码应该有效,不确定-->是什么意思,但当我检查我的其他页面时…@WhiteHat我在我的应用程序的仪表板页面上使用谷歌图表,当我在其他页面(例如添加项目页面)时,当我使用谷歌chrome DevTools检查时,它会显示该错误。