rails,使用咖啡脚本出现语法错误
Posted
技术标签:
【中文标题】rails,使用咖啡脚本出现语法错误【英文标题】:rails, getting syntax error with coffee script 【发布时间】:2012-04-28 14:57:39 【问题描述】:我正在尝试使用 jquery ui 库在 rails 中执行自动完成功能。但是我不断收到语法错误“语法错误:在线保留字“函数”......”
这是我的课程.js.coffee 文件
jQuery ->
$(function()
function split( val )
return val.split( /,\s*/ );
function extractLast( term )
return split( term ).pop();
$( "#lesson_tag_name" )
// don't navigate away from the field on tab when selecting an item
.bind( "keydown", function( event )
if ( event.keyCode === $.ui.keyCode.TAB &&
$( this ).data( "autocomplete" ).menu.active )
event.preventDefault();
)
.autocomplete(
source: $('#lesson_tag_name').data('autocomplete-source')
,
search: function()
// custom minLength
var term = extractLast( this.value );
if ( term.length < 2 )
return false;
,
focus: function()
// prevent value inserted on focus
return false;
,
select: function( event, ui )
var terms = split( this.value );
// remove the current input
terms.pop();
// add the selected item
terms.push( ui.item.value );
// add placeholder to get the comma-and-space at the end
terms.push( "" );
this.value = terms.join( ", " );
return false;
);
);
我在某处在线阅读,我可以用 -> 替换单词 function 我这样做了,我停止接收函数错误,但随后我收到其他语法错误,例如“语法错误:在线保留字“var”......”
我做错了吗?
【问题讨论】:
“我在网上读到的地方,我可以...”,也许你应该在使用它之前学习一点 CoffeeScript,或者至少通过一些教程。 会的。我真的以为我在咖啡脚本文件中混合了 js 【参考方案1】:只有第一行是coffeescript;其余的都是普通的javascript。
尝试使用此转换器:
http://js2coffee.org/
$(function() );
变为 $ ->
【讨论】:
谢谢,我真的以为我可以把js放到coffeescript文件中 你可以在coffeescript中包含vanilla javascript,如果你用反引号``.【参考方案2】:如果您想在咖啡脚本文件中嵌入 javascript,您可以使用反引号:
jQuery ->
`function abc() return 123; // js syntax here`
请看这里:http://coffeescriptcookbook.com/chapters/syntax/embedding_javascript
不过,这很令人困惑,因此将代码转换为咖啡脚本通常是一个更好的主意,在这种情况下,您可以按照 DanS 的建议使用 js2coffee.org 转换器。
【讨论】:
以上是关于rails,使用咖啡脚本出现语法错误的主要内容,如果未能解决你的问题,请参考以下文章
rails 服务器/控制台错误 - 没有要加载的文件 - 咖啡脚本(LoadError)
使用Perl执行Python脚本时,为什么不会出现语法错误?