javascript - 用于 D3 图表的 AngularJS 指令

标签 javascript angularjs d3.js angularjs-directive

我想将我的自定义条形图打包到一个由 ng 指令使用的类中。 我想使用该指令两次(或更多..)

<div ng-app="charts">
    <div ng-controller="mainCtrl">
        <chart-form></chart-form>
        <bar-chart height="options.height" data="data" hovered="hovered(args)"></bar-chart>
        <bar-chart height="options.height" data="data2" hovered="hovered(args)"></bar-chart>
    </div>
</div>

您可以在此处查看演示:http://jsfiddle.net/uhuRC/2/

当您使用推子改变高度时,您会看到两个图表数据之间的快速切换

先谢谢你!

最佳答案

你在声明

var chart = new d3.custom.barChart();

指令工厂闭包内部,用于创建指令的单例实例。因此,您为两个图表重复使用相同的条形图实例。

如果将该变量移动到链接方法(这是为指令的每个实例创建的闭包),它应该创建两个条形图而不是你现在得到的,这只是一种损坏条形图。这是一个带有更改的 jsFiddle:

http://jsfiddle.net/reblace/uhuRC/3/

关于javascript - 用于 D3 图表的 AngularJS 指令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18851601/

相关文章:

javascript - React 中的完整日历类型错误 : Cannot read property 'calendar' of undefined

javascript - 从 switch 语句返回一个值

javascript - 跟踪窗口调整大小 AngularJS 上的元素宽度

javascript - 使用angularjs在上传输入类型=文件之前验证文件大小

javascript - js 和 d3 中给定键的返回值 - 我必须循环吗?

javascript - d3.js x 坐标 iOS 显示不正确

javascript - 使用 tweendash 制作动画的曲线 d3 线

javascript - 如何过滤全选复选框以仅选择网格上的特定列

javascript - 检查光标何时悬停在链接上(特别是 YouTube 链接)

javascript - AngularJS 工作一次然后不再渲染