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是从事件处理程序调用的?