我担心在将这段JavaScript转换为类内的CoffeeScript时,可能会犯一个简单的错误。
在这个世界地图的原始示例中,我们有一个函数:
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)) )
然而,它并没有返回一个值,而是返回了scale函数,使我得到了这个:
类="函数scale(x){return range[Math.max(0,Math.min(i,Math.floor(kx*(x-x0))))];}"
我确定我做了一些非常简单的错误,但无法弄清楚。你能帮忙吗?