1

这是我拥有的一个简单的主干视图类:

class Student.Views.SharedChat extends Backbone.Marionette.ItemView
  template: 'student/shared/chat/chat'

  onRender: ->
    Student.CurrentUserChannel.bind('student:chat_threads:created', @setUpThread)

  setUpThread: (data) ->
    channel = Student.Pusher.subscribe("presence-thread-1")
    channel.bind('student:chat_messages:created', @newMessage) 

  newMessage: (data) ->
   do something with data...

end

我的问题是,我如何调用@newMessage,从上面的代码看起来,绑定到@newMessage 的通道在该范围内无法识别它,我如何从该绑定访问newMessage 函数?

感谢您的回复,这有点把我逼到墙边。


虽然我之前尝试过胖箭,但我想我并没有完全理解它。niko 的回复让我思考并阅读了更多内容。问题是@setUpThread 本身作为一个已经绑定的函数被调用,所以胖箭头需要@setUpThread 来维护@ 而不是@newMessage。

4

1 回答 1

0

我会这样做:

channel.bind('student:chat_messages:created', (data)=>@newMessage(data)) 
于 2012-10-14T03:04:28.470 回答