javascript - 如何让谷歌仪表从其上方的函数创建的输入标签中读取数据
问题描述
我使用 , 从 function1() 创建了一个输入标签,并使用,inputRowInputField = document.createElement('input')
分配了一个 ID 和值。我正在尝试通过下面在 function3() 中定义的谷歌仪表读取上面分配的值。我也是从 function2()创建的inputRowInputField.id = "input_1"
inputRowInputField.value = 10
chart_div
function drawChart() {
var data = google.visualization.arrayToDataTable([
['Label', 'Value'],
['Test', Number(document.getElementById("input_1").value)]
]);
var options = {
max: 100,
min: 0,
height: 110,
yellowFrom: 80,
yellowTo: 90,
greenFrom: 90,
greenTo: 100,
minorTicks: 2
};
var chart = new google.visualization.Gauge(document.getElementById('chart_div');
chart.draw(data, options);
我在下面调用函数
function1()
function2()
google.load('visualization', '1', {
packages: ['gauge']
});
google.setOnLoadCallback(function3());
调用 function3() 时出现错误:Uncaught TypeError: Cannot read property 'arrayToDataTable' of undefined
解决方案
首先,您使用的是旧版本的谷歌图表。
jsapi
不应再使用,请参阅更新库加载器代码。
消除...
<script src="https://www.google.com/jsapi"></script>
添加...
<script src="https://www.gstatic.com/charts/loader.js"></script>
这只会改变有问题的两个陈述......
现在,对于这个问题...
setOnLoadCallback
引用一个函数...
function3
不是函数的结果...
function3()
改成...
google.charts.load('current', {
packages: ['gauge']
});
google.charts.setOnLoadCallback(function3);
如果您需要将参数传递给回调函数,
请将其包装在另一个函数中...
google.charts.setOnLoadCallback(function () {
function3(arg1, arg2);
});
推荐阅读
- php - 为什么 mysqli PHP 扩展不能在 RHEL 上运行?
- java - Spring Batch:在步骤中实现编写器时,不会在 org.springframework.dao.DuplicateKeyException 上达到 ItemWriteListener 中的 onWriteError
- haskell - 我如何告诉 gitit 插件库在哪里?
- shell - zip -urj 命令在 jenkins 管道 shell 脚本中失败
- python - 生成器表达式中的 close()
- python - SQL到熊猫?分组和计数
- mysql - 我可以制作一个语句来返回(属性 A = A1 和属性 B = B1)或(属性 A = A2 和属性 B = B2)或等的记录吗?
- sql - 面临有条款的问题
- ios - Swift 5 - 如何使用速率以反向模式显示视频
- python - Python argparse subparser dest 参数不适用于父级