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() ); 变为 $ -&gt;

【讨论】:

谢谢,我真的以为我可以把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脚本时,为什么不会出现语法错误?

Python脚本运行出现语法错误:IndentationError:unexpected indent

Rails Jcrop 语法错误

我的 PHP 登录脚本出现以下错误

为啥我在意外标记 `(' 附近出现语法错误