在这tutorial
我几乎可以理解它 .
但只有一部分我不能 .
//javascripts/channels/rooms.coffee
App.global_chat = App.cable.subscriptions.create {
channel: "ChatRoomsChannel"
chat_room_id: ''
},
connected: ->
# Called when the subscription is ready for use on the server
disconnected: ->
# Called when the subscription has been terminated by the server
received: (data) ->
# Data received
send_message: (message, chat_room_id) ->
@perform 'send_message', message: message, chat_room_id: chat_room_id
方法 send_message
,内容为 @perform 'send_message', message: message, chat_room_id: chat_room_id
. 将其显示为Javascript:
function(message){
return this.perform('speak', {
message: message
});
}
我的问题是执行的功能在哪里?我试图将 @perform
修改为 @performs
,但该功能不起作用 .
1 回答
它是在rails中定义的 . 这里:https://github.com/rails/rails/blob/faa9a29fbbacc95e86c0ab3056a4443aa94e5530/actioncable/app/assets/javascripts/action_cable/subscription.coffee#L58-L60
从
App.cable.subscriptions.create
得到的对象,它将具有此方法/功能 .