Javascript 流星流范围界定问题

Javascript 流星流范围界定问题,javascript,meteor,coffeescript,Javascript,Meteor,Coffeescript,在服务器端,我有 class Service constructor: (@options = {}) -> @guiStream = new Meteor.Stream('gui') @guiStream.on('toggle', -> console.log "Toggle event handler called OK." @toggle() ) toggle: (_activate) -> @activa

在服务器端,我有

class Service
  constructor: (@options = {}) ->
    @guiStream = new Meteor.Stream('gui')
    @guiStream.on('toggle', ->
      console.log "Toggle event handler called OK."
      @toggle()
    )

  toggle: (_activate) ->
    @activated = if not _activate? then not @activated else _activate
我想在客户端上的模板发出“toggle”事件后调用服务中的toggle方法。事件处理工作正常,但如何从事件处理程序内部调用服务的toggle方法?因为@在@guiStream的范围内,而不是服务,所以上面的结果是

Exception while invoking method 'stream-gui' ReferenceError: toggle is not defined

你知道我该怎么做吗?为了简洁起见,toggle方法包含了更多我在这里删除的内容。它在整个服务中都被使用,所以如果可以避免的话,我宁愿不把它放在@guiStream中。

更改@guiStream.on'toggle',->使用fat arrow=>,它可以工作。请参阅相关主题。

考虑到Meteor.Stream的示例应用程序中的一个更奇怪的问题,在该应用程序中,positionPointer是从事件处理程序调用的?