Javascript d3.js传递绑定函数似乎不执行该函数

Javascript d3.js传递绑定函数似乎不执行该函数,javascript,d3.js,coffeescript,Javascript,D3.js,Coffeescript,我正在尝试重用一些生成x轴刻度的代码。以下是我使用的方法: xTicks: (scale, dayTickFormat) -> d3.svg.axis().scale(scale).orient("bottom") .ticks(d3.time.days, 1) .tickSize(10) .tickFormat(dayTickFormat) .tickPadding(8) 请原谅咖啡脚本:\ 不管怎样,我这里有一个代码调用: drawTicks:

我正在尝试重用一些生成x轴刻度的代码。以下是我使用的方法:

xTicks: (scale, dayTickFormat) ->
    d3.svg.axis().scale(scale).orient("bottom")
    .ticks(d3.time.days, 1)
    .tickSize(10)
    .tickFormat(dayTickFormat)
    .tickPadding(8)
请原谅咖啡脚本:\

不管怎样,我这里有一个代码调用:

drawTicks: (chart, chartOptions, margin, x, y, num_y_ticks) ->

    xTickGroup = chart.append("g").attr("class", "day-ticks")
    .call(@xTicks.bind(@, x, dayTickFormat))
    .attr("transform", "translate(#{chartOptions.offset.left}, #{chartOptions.height - 10})")
当这个代码执行时,我没有得到任何记号。我被难住了。有什么想法吗?

好的,nvm,我明白了

call并不是调用d3.svg.axis位,而是调用我围绕它包装的方法。因此,如果我将我的方法存储在这样一个变量中:

xTicks = @xTicks(x, dayTickFormat)
我可以这么简单地说:

xTickGroup = chart.append("g").attr("class", "day-ticks")
.call(xTicks)
.attr("transform", "translate(#{chartOptions.offset.left}, #{chartOptions.height - 10})")

希望有一天这能对某人有所帮助:\

我怀疑这是因为我返回d3.svg.axis的方式。。。但我不确定我是否理解正在发生的事情。