Angular2 + Chart.js和ng2-charts。数据绑定无法按预期工作

时间:2016-02-16 15:29:36

标签: javascript charts angular chart.js

我正在尝试将Chart.js实施到我的Angular2应用程序中。我也使用ng2-charts指令。我按照示例中所示设置了所有内容,当我使用示例数据运行应用程序时,一切正常。当我尝试使用自己的数据时会出现问题。实际问题是我使用服务在ngOnInit()方法中加载数据,这样在我获得数据之前初始化图表指令(或者我猜是这样)。我收到的不是非常具有描述性的错误:

  

" EXCEPTION:TypeError:t在trafficComponent @ 6:16中的[barChartOptions]中未定义"

它真的不多说:)问题不在barChartOptions,因为我只替换barChartLabelsbarChartData参数,其余参数如示例中所示。我的参数也是正确和有效的,它们也不是问题。
我想知道是否有办法用一些Promise重新加载(重新初始化)指令 - 就像解决方案一样或利用生命周期钩子 如果有其他人遇到过同样的问题并且愿意分享他的解决方案,我会非常高兴非常很高兴:)

更新

我在控制台中记录了传递给data构造函数的Chart对象new Chart(ctx).Bar(data, options);,而labelsdatasets.data属性未定义< / em>虽然我从服务中获取数据后立即再次记录它们并且它们是正确的。我认为某种数据绑定应该可以解决问题,但在这种情况下我不知道如何实现它。实际上有一个数据绑定(如ng2-charts中的示例所示),但它并没有像我期望的那样工作。更改组件中的属性不会影响Charts指令的属性,并且它们仍然未定义

更新2(2016-02-19)

更新到新发布的Angular版本2.0.0-beta.7后,一切都按预期工作。

2 个答案:

答案 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解决了这个问题。