从coffeescript类中的$(window).resize函数中访问变量的问题

时间:2015-01-12 03:34:33

标签: javascript angularjs d3.js coffeescript

我找到了一百万关于如何制作响应式d3图表的指南,但似乎没有一个能解决我遇到的问题。我有一个d3图形是从一个coffeescript类的angularjs控制器创建的。这个类中的所有函数都使用@ width,@ height,@ margin,@ x,@ y等。我需要编写一个可以访问这些变量的resize函数。但是,resize函数中的@(this)指向窗口,而不是对象。我似乎无法找到一种方法来调整大小与其他所有内容相同的范围。有什么想法吗?

编辑:相关示例代码

class Graph
  init: () ->
    @width = 100
  $(window).resize ->
    console.log(@width)  #returns undefined

1 个答案:

答案 0 :(得分:0)

不确定这是否是您所需要的,但您可以将参考作为“调整大小”方法中的第一个arg传递。

class Graph
  init: () ->
  w = @width = 100
  $(window).resize w, ->
    console.log(w)