1

我有一点 Coffeescript

d3Graph: =>

  refreshData: ->
    console.log "refresh data called"

  someButton.click ->
    refreshData()

当我单击“someButton”时,我收到一个错误

Uncaught ReferenceError: refreshData is not defined 

有人看到我的错误吗?

4

2 回答 2

3

尝试使用refreshData =而不是在refreshData:这里。

d3Graph: =>

  refreshData = ->
    console.log "refresh data called"

  someButton.click ->
    refreshData()

如果这不起作用,您将不得不提供更完整的代码。

如果您遇到这样的问题,看看输出的 JavaScript 是什么总是有帮助的。

例如,在这种情况下,您的原始代码输出:

var _this = this;

({
  d3Graph: function() {
    ({
      refreshData: function() {
        return console.log("refresh data called");
      }
    });
    return someButton.click(function() {
      return refreshData();
    });
  }
});

所以很明显没有调用变量/函数refreshData

于 2012-11-20T20:12:53.317 回答
0

Jamie Wong 正确地解释了这一点。我只是想知道您是否尝试将 d3Graph 用作一个类:

class d3Graph

  @refreshData: ->
    console.log "refresh data called"

someButton.click ->
  d3Graph.refreshData()

或者当图形是一个实例时:

class d3Graph

  refreshData: ->
    console.log "refresh data called"

graph = new d3Graph()

someButton.click ->
  graph.refreshData()

希望这可以帮助。

于 2012-11-21T09:39:00.560 回答