D3.js 4 和 AngularJS 1.5(组件或指令?)

D3.js 4 with AngularJS 1.5 ( Components or Directives ? )

我想将 D3.js v4 与 AngularJS 1.5x

一起使用

过去我使用 .directives 作为图表,但现在我想知道是否可以使用 .components 而不是指令, 如果这是一个好习惯。

Check the sample case on Plunkr

组件中的 d3.select(element[0]).append('svg') 出现问题。 控制台报错:element is not defined.

所以我尝试了 d3.select('chart-container').append('svg') 但随后 d3 在拥有 class 的第一个元素中注入所有图表(在所有文档中查找 class,而不仅仅是组件)。


所以...有人可以帮助我为可重用组件做一个正确的 d3.select() 吗?

无需为每个添加不同的 ID(工作量大且维护难度大)

您可以将 $element 传递给组件控制器

svg     = d3.select($element[0]).append('svg'),

http://plnkr.co/edit/SMoYLtx4I8RuLf285R6J?p=preview