流星.流范围问题

Meteor.Stream scoping issues

本文关键字:问题 范围 流星      更新时间:2023-09-26

在服务器端,我有

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"事件后调用Service中的toggle方法。事件处理工作正常,但如何从事件处理程序内部调用Service的toggle方法?由于@在@guiStream的范围内,而不是服务,因此以上生成

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

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

@guiStream.on('toggle', ->更改为使用胖箭头=>,就可以了。请参阅此相关主题。