Afraid Я делаю простую ошибку в том, как преобразовать этот JavaScript в CoffeeScript в классеПеревести d3.js 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)))
Однако это does't возвращает значение, а она возвращает функцию масштаба, оставив меня с этим:
class="function scale(x) { return range[Math.max(0, Math.min(i, Math.floor(kx * (x - x0))))]; }"
Я уверен, что я делая что-то очень простое, но не может понять это. Вы можете помочь?
Спасибо. И ваш ответ, и работа @ edi9999, так что это сложный призыв принять! Вы правильно определили, что я храню квантование в объекте, поэтому я пойду с этим ;-). –