带骨干.js的 D3 云
D3-cloud with backbone.js
>我打算使用 d3-cloud 生成词云并尝试按如下方式使用它在具有主干视图的 Rails 应用程序中。我是 d3 的初学者,如果问题很愚蠢,请原谅。
从 https://github.com/jasondavies/d3-cloud/blob/master/examples/simple.html
我不断收到此错误未捕获的类型错误:对象呈现没有方法"应用"
我的 API 返回的结果如下。
[{"text":"Timmy Doe","size":100},{"text":"John Doe","size":50}]
class Mongoauth.Views.TagCloud extends Backbone.View
id = 0
defaults: {
w: 1,
h: 5
}
initialize:->
_.bindAll(this,"render");
@collection.bind("reset",this.render);
@collection.bind("change", this.render);
this.chart = d3.layout.cloud().size([300, 300]).words(@collection.models).padding(5).rotate(->
~~(Math.random() * 2) * 90
).font("Impact").fontSize((d) ->
d.size
).on("end", "render").start()
# this.chart = d3.select(this.el).append('svg').attr("width", 300)
# .attr("height", 200)
# .attr("viewBox","0 0 100 100");
console.log(@collection)
render: ->
d3.select(this.el).append("svg").attr("width", 300).attr("height", 300).append("g").attr("transform", "translate(150,150)").selectAll("text").data(this.collection.models).enter().append("text").style("font-size", (d) ->
d.size + "px"
).style("font-family", "Impact").style("fill", (d, i) ->
d3.scale.category20() i
).attr("text-anchor", "middle").attr("transform", (d) ->
"translate(" + [d.x, d.y] + ")rotate(" + d.rotate + ")"
).text (d) ->
d.text
this
您将字符串
作为事件侦听器传递到第 .on("end", "render").start()
行上。 它需要是一个函数引用(例如 this.render
)。
相关文章:
- 如何在d3.js中返回路径的y坐标
- 有条件更新d3.js力图中节点的最佳方法
- 使用D3.js计算带有字母间距的文本长度
- D3.js模式不适用于弧形或圆环图
- d3.js Chord图的动态工具提示
- 在D3.js中,有没有任何方法可以将x和y方向上的滚动事件绑定到平移svg
- HTML5FileReader输出到D3.js图表
- D3.js生成有效的SVG,但不显示任何内容
- d3.js:限制画笔的大小
- d3.js用按钮更新条形图工具提示
- 如何为d3.js图表输出组织/嵌套数据
- d3-js快速事件调用问题
- D3.JS向rect添加缩放和列表项
- d3.js圆的半径是否可以由样式属性指定
- 如何在d3.js中自定义事件侦听器
- 在新窗口上使用d3.js
- 如何用d3.js绘制折线图
- 使用dc.js、d3.js和crossfilter引用错误
- D3.js剪辑路径截断了我的图的边缘
- D3.js和坐标系