我正在关注DHH的教程。一切顺利,直到我将此代码添加到room.coffee
$(document).on 'keypress', '[data-behavior~=room_speaker]', (event) ->
if event.keyCode is 13 # return = send
App.room.speak event.target.value
event.target.value = ''
event.preventDefault()
一旦我这样做,我得到:
SyntaxError:[stdin]:15:3:如果
则意外
提取的来源(第8行):
6 <%= action_cable_meta_tag %>
7
8 <%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track' => true %>
9 <%= javascript_include_tag 'application', 'data-turbolinks-track' => true %>
</head>
我正在使用Rails 5.0.0.beta2,Ruby 2.3.0,并在OS X 10.11.3上运行
我在application.html.erb
room.coffee
中
帮助表示赞赏!
答案 0 :(得分:0)
Javascript错误与Action Cable无关。你得到它是因为你的if
没有身体。
您的代码,因为它当前缩进,转换为无意义的内容,因此错误
$(document).on('keypress', '[data-behavior~=room_speaker]', function(event) {
if (event.keyCode === 13)
App.room.speak(event.target.value);
event.target.value = '';
return event.preventDefault();
});
这就是你想要的。请注意缩进。
$(document).on 'keypress', '[data-behavior~=room_speaker]', (event) ->
if event.keyCode is 13 # return = send
App.room.speak event.target.value
event.target.value = ''
event.preventDefault()
转换为
$(document).on('keypress', '[data-behavior~=room_speaker]', function(event) {
if (event.keyCode === 13) {
App.room.speak(event.target.value);
event.target.value = '';
return event.preventDefault();
}
});