Javascript 图.Js-“;无法读取属性';数据集';“未定义”的定义;尝试更新图表时
关于如何动态更新chart.js图表,我在这里已经研究了很多线程。我已经尽我所能地遵循答案,但是每次我试图用数据库中的数据定期更新图表时,我都会遇到上述错误 我声明Javascript 图.Js-“;无法读取属性';数据集';“未定义”的定义;尝试更新图表时,javascript,chart.js,Javascript,Chart.js,关于如何动态更新chart.js图表,我在这里已经研究了很多线程。我已经尽我所能地遵循答案,但是每次我试图用数据库中的数据定期更新图表时,我都会遇到上述错误 我声明mountaincontent,当页面完全加载时,它将成为图表对象。在document ready函数中存在GetStatUpdate函数,该函数定期调用数据库,以检索关于主客场球队对足球比赛的积极和消极情绪的数据。 在检索数据时,它将首先创建图表(当statsRenderCount为0时,它会这样做),然后更新它。它正确地使用初始调
mountaincontent
,当页面完全加载时,它将成为图表对象。在document ready函数中存在GetStatUpdate
函数,该函数定期调用数据库,以检索关于主客场球队对足球比赛的积极和消极情绪的数据。在检索数据时,它将首先创建图表(当statsRenderCount为0时,它会这样做),然后更新它。它正确地使用初始调用中的数据创建图表的第一部分,但是后续调用将输入else语句并尝试更新图表。在这里,我收到了“无法读取未定义的属性‘数据集’”错误 就我的理解而言,它好像没有意识到
mountaincontent
的存在,好像它不在它的范围内,但是我知道这不可能是正确的,因为我在文档就绪加载函数的一开始就声明了这一点,而getstatupdate()
位于该函数中。所以,mountaincontent
肯定不能是未定义的
$(document).ready(function(){
var sentimentMainContent = 0;
...
...
...
function getStatsUpdate(){
...
var result = initialResponse.split("___");
tweet_time = result[0]
home_avg = result[1];
home_positive = result[2];
home_negative = result[3];
home_neutral = result[4];
away_avg = result[5];
away_positive = result[6];
away_negative = result[7];
away_neutral = result[8];
var home_sentiment = {
labels: [
homeTeam + " Positive",
homeTeam + " Negative",
awayTeam + " Positive",
awayTeam + " Negative",
],
datasets: [
{
data: [home_positive, home_negative, away_positive, away_negative],
backgroundColor: [
"#F5003F",
"#3C9BFF",
"#26FF9A",
"#FFE951"
],
borderColor: [
"black",
"black",
"black",
"black",
"black",
"black"
],
borderWidth: [
"0.5",
"0.5",
"0.5",
"0.5",
"0.5",
"0.5",
],
hoverBackgroundColor: [
"#F5003F",
"#FAFAFA",
"#3C9BFF",
"#26FF9A",
"#FF5720",
"#FFE951"
]
}
]
};
if(statsRenderCount == 0)
{
alert("re-rendering!");
sentimentMainContent = new Chart(document.getElementById("sentiment-stat"), {
type: 'doughnut',
data: home_sentiment,
options: {
cutoutPercentage: 60,
responsive: true,
legend: {
display: false
},
tooltips: {
filter: function(item, home_sentiment) {
var label = home_sentiment.labels[item.index];
if (label) return item;
}
}
}
});
statsRenderCount += 1;
}
else
{
alert("updating");
sentimentMainContent.home_sentiment.datasets[0] = home_sentiment;
sentimentMainContent.update();
}
}
我还尝试了mountainmaincontent.home\u commotion=home\u commotion
因为该方法似乎存在缺陷,即感情用事MainContent.home\u情绪。数据集[0]
表示数据集数组,我将整个home\u情绪变量分配给它,这似乎不正确。不管怎样,当我进行此更改时,不会发生错误,但是图表根本不会更新
有什么明显的东西我忽略了吗