Socket.io Nodejs CoffeeScript在socket.on中获取套接字和当前inheritance的类variables

我遇到了一个问题,我需要套接字和类实例,但无法得到它们。 我有configuration文件在哪里事件如:消息,发布,共享。 我有以下代码:

module.exports = class Controller constructor : (container) -> @_routes = null _generateRoutes : (routes) -> @_routes = routes _bind : (socket) -> instance = @ for route in @_routes # TODO : fix this socket.on route['event'], (data) -> instance[route['action']](@, data) 

问题是,我可以从该表中调用任何事件,它总是以共享事件结束。 我认为这可能是实例[route ['action]]中的问题。 有没有办法明确说我只想要一个variables的值,而不是函数中的当前variables?

所以每次我只能直接绑定套接字动作,或者只是在inheritance类中使用=>类实例时才能获得套接字。

感谢您的回应

所以我意识到这个代码有什么问题。 它应该使用closures。 对于closures,咖啡“do”中有一个关键字。 然后,它不会使用path的改变值,而是在每个循环中使用本地值。

固定的_bind函数看起来像这样:

  _bind : (socket) -> instance = @ for route in @_routes do (route)-> socket.on route['event'], (data) -> instance[route['action']](@, data)