我有以下错误:typeError:无法读取未定义的属性'skip'。
我有一种在我的应用程序中构建图表的方法。发生这种情况
var ctx = document.getElementById("myChart");
var chartInstance = new Chart(ctx);
var myChart = new Chart(ctx, {
type: 'line',
data: {
labels :this.equity,
datasets: [{
data: this.equity
}]
}
});
}
this.Equity是我使用服务器数据在客户端计算的值数组。这是我以后过滤的列表
一切都可以顺利进行,直到我开始过滤。该图是基于列表中的值构建的。我已经编码了一个过滤器,该过滤器用各种选项过滤列表。在每个过滤结束时,我再次调用上面的方法以重建图表。
现在这是奇怪的事情开始发生的地方。图表平稳地重建。我使用不同的选项过滤很多次,然后在某个时候我会得到这个错误!它在我按过滤器上的某个特定时刻不会发生,而只是发生。
我认为这是因为每次创建一个新的图表对象并为其提供新值时。值的变量与旧对象相同,并且会导致错误,因为在某个时候,Angular检查了旧对象,并且已经有一个不符合旧列表的值的新列表。
这对任何人都兴了吗?现在,有人在创建一个新图表对象时如何将旧图表对象删除以解决?谢谢!
使用 destroy()
方法。
...
if (myChart) myChart.destroy();
myChart = new Chart(ctx, {
type: 'line',
...
...
确保myChart
变量全球可访问
但是,一种更好的方法是使用 update()
方法更新图表,当您添加/更新图表中的数据时,而不是每次创建图表的新实例。