Uncaught (in promise) Error: Container is not defined
Uncaught (in promise) Error: Container is not defined
我在我的 Code-Igniter 应用程序中使用 google 图表(饼图)。我在我的仪表板视图页面上显示图表,我得到了正确的结果。但是当我检查其他页面时出现错误
Uncaught (in promise) Error: Container is not defined.
错误:
Uncaught (in promise) Error: Container is not defined
at gvjs_3m (jsapi_compiled_default_module.js:66)
at gvjs_9K.gvjs_7p [as constructor]
(jsapi_compiled_default_module.js:232)
at gvjs_9K.gvjs_8K [as constructor] (jsapi_compiled_ui_module.js:979)
at new gvjs_9K (jsapi_compiled_ui_module.js:1010)
at drawChart (landlordAdd:648)
at landlordAdd:623
at
我的图表代码:
<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>
HTML 代码:
<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>
但您需要检查是否所有页面都抛出错误,
有一个 div
元素,其中包含绘制图表时使用的 id...
// check for div with proper id
var piechart = new google.visualization.PieChart(document.getElementById('piechart_div'));
在 error
回调中替换硬编码数据,
您发布的代码工作正常...
请参阅以下工作片段
google.charts.load('current', {
packages:['corechart']
}).then(function () {
$.ajax({
url: "<?php echo base_url().'Dashboard/chartData'; ?>",
dataType: "JSON",
success: function(result){
drawChart(result);
},
error: function () {
var result = [
{name: 'defect 1', defects: '1'},
{name: 'defect 2', defects: '2'},
{name: 'defect 3', defects: '3'},
{name: 'defect 4', defects: '4'},
{name: 'defect 5', defects: '5'}
];
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 src="https://www.gstatic.com/charts/loader.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></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>
我在我的 Code-Igniter 应用程序中使用 google 图表(饼图)。我在我的仪表板视图页面上显示图表,我得到了正确的结果。但是当我检查其他页面时出现错误
Uncaught (in promise) Error: Container is not defined.
错误:
Uncaught (in promise) Error: Container is not defined
at gvjs_3m (jsapi_compiled_default_module.js:66)
at gvjs_9K.gvjs_7p [as constructor] (jsapi_compiled_default_module.js:232)
at gvjs_9K.gvjs_8K [as constructor] (jsapi_compiled_ui_module.js:979)
at new gvjs_9K (jsapi_compiled_ui_module.js:1010)
at drawChart (landlordAdd:648)
at landlordAdd:623
at
我的图表代码:
<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>
HTML 代码:
<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>
但您需要检查是否所有页面都抛出错误,
有一个 div
元素,其中包含绘制图表时使用的 id...
// check for div with proper id
var piechart = new google.visualization.PieChart(document.getElementById('piechart_div'));
在 error
回调中替换硬编码数据,
您发布的代码工作正常...
请参阅以下工作片段
google.charts.load('current', {
packages:['corechart']
}).then(function () {
$.ajax({
url: "<?php echo base_url().'Dashboard/chartData'; ?>",
dataType: "JSON",
success: function(result){
drawChart(result);
},
error: function () {
var result = [
{name: 'defect 1', defects: '1'},
{name: 'defect 2', defects: '2'},
{name: 'defect 3', defects: '3'},
{name: 'defect 4', defects: '4'},
{name: 'defect 5', defects: '5'}
];
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 src="https://www.gstatic.com/charts/loader.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></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>