我找到了一百万关于如何制作响应式d3图表的指南,但似乎没有一个能解决我遇到的问题。我有一个d3图形是从一个coffeescript类的angularjs控制器创建的。这个类中的所有函数都使用@ width,@ height,@ margin,@ x,@ y等。我需要编写一个可以访问这些变量的resize函数。但是,resize函数中的@(this)指向窗口,而不是对象。我似乎无法找到一种方法来调整大小与其他所有内容相同的范围。有什么想法吗?
编辑:相关示例代码
class Graph
init: () ->
@width = 100
$(window).resize ->
console.log(@width) #returns undefined
答案 0 :(得分:0)
不确定这是否是您所需要的,但您可以将参考作为“调整大小”方法中的第一个arg传递。
class Graph
init: () ->
w = @width = 100
$(window).resize w, ->
console.log(w)