2014-11-02 69 views
0

在服務器端我有Meteor.Stream範圍的問題

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 

我想要的「切換」事件是從客戶機上的模板發出後,來調用服務的切換方法。事件處理工作正常,但我如何從事件處理程序內部調用Service的切換方法?由於@屬於@guiStream而不是Service,因此上述收益率爲

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

任何想法如何正確執行此操作?切換方法包含了很多我爲了簡潔而刪除的內容。它在整個Service中都使用,所以如果可以避免的話,我寧願不把它放在@guiStream中。

+0

在Meteor.Stream的示例應用程序中考慮[this](https://github.com/arunoda/streams-blackboard/blob/master/lib/remote_user.js)的更奇怪的地方,其中positionPointer是從事件處理程序? – jiku 2014-11-02 23:14:46

回答

0

更改@guiStream.on('toggle', ->使用胖箭頭=>,它的工作原理。請參閱this相關主題。