クラス内でこの 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)) )
ただし、これは値を返すのではなく、スケール関数を返すため、次のようになります。
class="function scale(x) { return range[Math.max(0, Math.min(i, Math.floor(kx * (x - x0))))]; }"
私は非常に単純な間違ったことをしていると確信していますが、それを理解することはできません。手伝ってくれますか?