【发布时间】:2013-07-17 13:05:50
【问题描述】:
恐怕我在如何将这个 JavaScript 转换为类中的 CoffeeScript 时犯了一个简单的错误
在这个original example of a world map我们有一个函数:
var quantize = d3.scale.quantize()
.domain([0, .15])
.range(d3.range(9).map(function(i) { return "q" + i + "-9"; }));
然后在渲染地图时调用它:
.attr("class", function(d) { return quantize(rateById.get(d.id)); })
剩下的就是 class="q8-9 之类的东西,这正是我们想要的。
将其转换为我拥有的 CoffeeScript:
quantize: ->
d3.scale.quantize()
.domain([0, .15])
.range(d3.range(9).map((i) -> "q" + i + "-9" ))
然后我这样称呼:
.attr("class", (d) => @quantize(rateById.get(d.id)) )
然而,这并没有返回一个值,而是返回了缩放函数,给我留下了这个:
class="function scale(x) { return range[Math.max(0, Math.min(i, Math.floor(kx * (x - x0))))]; }"
我确定我做错了一些非常简单的错误,但无法弄清楚。你能帮忙吗?
【问题讨论】:
标签: javascript coffeescript d3.js