Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/458.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 未捕获类型错误:无法读取属性';getTime';画布中未定义的_Javascript_Html_Google Apps Script_Canvasjs - Fatal编程技术网

Javascript 未捕获类型错误:无法读取属性';getTime';画布中未定义的

Javascript 未捕获类型错误:无法读取属性';getTime';画布中未定义的,javascript,html,google-apps-script,canvasjs,Javascript,Html,Google Apps Script,Canvasjs,我在更新CanvasJS图表的数据点时遇到了一个问题,错误消息是 “未捕获的TypeError:无法读取未定义的属性'getTime' 我也试着把它做成这样一个物体 var parLabels = JSON.stringify(labels); var obj = JSON.parse(parLabels); 它仍然不起作用 index.html <div id="chartContainer" style="height: 300px; width: 100%;">&l

我在更新CanvasJS图表的数据点时遇到了一个问题,错误消息是

“未捕获的TypeError:无法读取未定义的属性'getTime'

我也试着把它做成这样一个物体

var parLabels = JSON.stringify(labels);     
var obj = JSON.parse(parLabels);
它仍然不起作用

index.html

<div id="chartContainer" style="height: 300px; width: 100%;"></div>

<script type="text/javascript>
$(function() {
  google.script.run.withSuccessHandler(showDaily).getData();
});
function showDaily(myObj) {
  var email = myObj.email;
  var entity = myObj.entity;
  var entity = JSON.parse(entity);
  var monthNames = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"];
  var labels = '';
  for (var i = 1; i < entity.length; i++) {
    var month = new Date(entity[i][0]).getMonth();
    var day = new Date(entity[i][0]).getDate();
    var date = day + " " + monthNames[month];
    var score = entity[i][7];
    if (entity[i][2] != '') {
      if (labels != "") {
        labels = labels + ",{label:" + date + ",y:" + score + "}";
      } else {
        labels = "{label:" + date + ",y:" + score + "}";
      }
    }
  }
  var chart = new CanvasJS.Chart("chartContainer", {
    title: {
        text: "My First Chart in CanvasJS"              
    },
    data: [              
    {
        // Change type to "doughnut", "line", "splineArea", etc.
        type: "line",
        dataPoints: [ labels ]
    }
    ]
  });
  chart.render();
}

</script>

在CanvasJS中,应该是一个对象数组。但在你的情况下,它似乎是一根弦。尝试将
标签
更改为数组并将其传递给数据点应该可以正常工作

var labels = [];
for (var i = 1; i < entity.length; i++) {
    var month = new Date(entity[i][0]).getMonth();
    var day = new Date(entity[i][0]).getDate();
    var date = day + " " + monthNames[month];
    var score = entity[i][7];
    if (entity[i][2] != '') {   
        labels.push({label: date, y: score });
    }
}
var标签=[];
对于(变量i=1;i
然后将其作为数据点传递:在CanvasJS中,标签应该是一个对象数组。但在你的情况下,它似乎是一根弦。尝试将
标签
更改为数组并将其传递给数据点应该可以正常工作

var labels = [];
for (var i = 1; i < entity.length; i++) {
    var month = new Date(entity[i][0]).getMonth();
    var day = new Date(entity[i][0]).getDate();
    var date = day + " " + monthNames[month];
    var score = entity[i][7];
    if (entity[i][2] != '') {   
        labels.push({label: date, y: score });
    }
}
var标签=[];
对于(变量i=1;i
然后将其作为数据点传递:标签更改此行

google.charts.load('current',{packages:['corechart']})

google.charts.load('45',{packages:['corechart']})

google.charts.load的第一个参数是版本名或版本号(以字符串形式)。
如果指定“当前”,则会加载最新的Google图表官方版本。
如果您想尝试下一版本的候选版本,请使用“即将发布”代替。
总的来说,这两个版本之间的差别很小,并且它们将完全相同,除非新版本正在进行中

此问题在版本45中得到解决。

更改此行

google.charts.load('current',{packages:['corechart']})

google.charts.load('45',{packages:['corechart']})

google.charts.load的第一个参数是版本名或版本号(以字符串形式)。
如果指定“当前”,则会加载最新的Google图表官方版本。
如果您想尝试下一版本的候选版本,请使用“即将发布”代替。
总的来说,这两个版本之间的差别很小,并且它们将完全相同,除非新版本正在进行中


这个问题在版本45中得到解决。

当我只有一个数据点时,这种情况就会发生。这似乎是版本46和47中的一个bug,所以降级到版本
45
(正如@Pranjali-Rastogi所建议的)对我来说是可行的


我的另一个解决方法是指定
hAxis.viewWindow.min
hAxis.viewWindow.max
,以便图表可以“缩小”以显示多个hAxis刻度

当我只有一个数据点时,这种情况就会发生。这似乎是版本46和47中的一个bug,所以降级到版本
45
(正如@Pranjali-Rastogi所建议的)对我来说是可行的


我的另一个解决方法是指定
hAxis.viewWindow.min
hAxis.viewWindow.max
,以便图表可以“缩小”以显示多个hAxis刻度

无法将类对象从应用程序脚本传递到HtmlService。因此,以毫秒为单位发送日期。可能的副本无法将类对象从应用程序脚本传递到HtmlService。所以,以毫秒为单位发送日期。它可能重复工作!!谢谢@Vishwas帮我解决这个问题。它很有效!!谢谢@Vishwas帮我解决这个问题。