我正在尝试将Chart.js
实施到我的Angular2
应用程序中。我也使用ng2-charts指令。我按照示例中所示设置了所有内容,当我使用示例数据运行应用程序时,一切正常。当我尝试使用自己的数据时会出现问题。实际问题是我使用服务在ngOnInit()
方法中加载数据,这样在我获得数据之前初始化图表指令(或者我猜是这样)。我收到的不是非常具有描述性的错误:
" EXCEPTION:TypeError:t在trafficComponent @ 6:16中的[barChartOptions]中未定义"
它真的不多说:)问题不在barChartOptions
,因为我只替换barChartLabels
和barChartData
参数,其余参数如示例中所示。我的参数也是正确和有效的,它们也不是问题。
我想知道是否有办法用一些Promise
重新加载(重新初始化)指令 - 就像解决方案一样或利用生命周期钩子
如果有其他人遇到过同样的问题并且愿意分享他的解决方案,我会非常高兴非常很高兴:)
我在控制台中记录了传递给data
构造函数的Chart
对象new Chart(ctx).Bar(data, options);
,而labels
和datasets.data
属性未定义< / em>虽然我从服务中获取数据后立即再次记录它们并且它们是正确的。我认为某种数据绑定应该可以解决问题,但在这种情况下我不知道如何实现它。实际上有一个数据绑定(如ng2-charts中的示例所示),但它并没有像我期望的那样工作。更改组件中的属性不会影响Charts
指令的属性,并且它们仍然未定义。
更新到新发布的Angular版本2.0.0-beta.7
后,一切都按预期工作。
答案 0 :(得分:1)
在尝试创建折线图时,我遇到了使用chart.js的类似问题。我的所有数据都显示为未定义。不确定您的问题是否与我的问题完全相同,但我至少可以指出您的解决方案是使用动态组件加载器。
Chart.js not showing in Angular2 if it doesn't exist on the main page
答案 1 :(得分:0)
更新到Angular 2.0.0-beta.7解决了这个问题。