结合d3.js和backbone.js

15

我正在开发一个项目,将所有的d3.js可视化图形与backbone.js整合到单个页面应用程序中。由于我有许多可视化图表,如柱状图、饼图等,我想知道解决这个问题的最佳方法。

例如,假设我有两个柱状图和一个饼图,那么我应该在一个视图中将所有的边距、比例尺都设置好并渲染所有图表的数据吗?由于有两种不同类型的图形,模型应该是什么?

哪些内容应该放在View、Model、Controller、Collection等中呢?

提前感谢您的帮助!


这个描述太过笼统了。如果您想得到一个好的答案,需要提供更具体的信息。 - Lars Kotthoff
视图、模型、控制器和集合中应该放置的内容与任何其他单页应用程序没有区别。这与d3、条形图、饼图等无关。 - Rick Suggs
https://dev59.com/J2Qn5IYBdhLWcg3wJ0e5#17058009 - Adam Pearce
一个有趣的视频专门讲述了如何将两者结合起来:https://www.youtube.com/watch?v=kqSc9YAZUi8 - gimg1
1个回答

22

我稍微研究了一下如何结合D3和Backbone,有几个现成的解决方案:

概述演示

关于结合Backbone和D3的简短教程

关于将Backbone和D3结合起来的更长的讨论

多个JS库用于与D3集成

我在GitHub上也找到了一个库,但似乎没有得到支持...

最终,这些都没有真正满足我的需求,所以我开发了自己的Backbone模型、集合和视图。我设置了:

ChartPoint 模型 - X轴&Y轴坐标和点标签

ChartSeries 集合 - ChartPoints的集合,定义了整个图表

ChartBaseView - 一个视图,解释上述数据,处理事件,绘制轴和其他一般功能

BarChartView, LineChartView, PieChartView等 - 用于渲染所需图表类型的特定视图。大部分D3代码写在这里。

不是说这是“正确”的方法...只是我的方法。


1
这听起来像是一个很好的高层抽象——你能否发布一个要点,展示该模型的实现以及伪代码示例化这些和其他组件之间的交互? - Barney

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接