2012-04-17 6 views
8

Estoy intentando hacer una función de autocompletar en rieles utilizando la biblioteca jquery ui. Sin embargo sigo obteniendo errores de sintaxis "Error de sintaxis: la palabra reservada 'función' en la línea ..."rieles, obteniendo un error de sintaxis con la secuencia de comandos coffee

este es mi archivo lessons.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; 
      } 
     }); 
}); 

i leer en línea en alguna parte que yo podría reemplazar el función de palabra con -> hice eso y dejé de recibir los errores de función, pero luego recibí otros errores de sintaxis, como "Error de sintaxis: palabra reservada" var "en línea ..."

estoy haciendo algo mal ?

+1

"leo en línea en algún lugar que podría ...", tal vez debería aprender un poco de CoffeeScript antes de usarlo o al menos ejecutar algunos tutoriales. –

+0

hará. realmente pensé que mezclaría js en archivos de coffeescript – Sasha

Respuesta

16

Solo la primera línea es coffeescript; el resto es javascript normal.

Trate de usar este convertidor:

http://js2coffee.org/

$(function() {}); convierte $ ->

+1

gracias, realmente pensé que podría poner js en el archivo coffeescript – Sasha

+0

Puede incluir vainilla javascript en coffeescript, si lo envuelve en backticks ''. – DanS

3

Si desea incrustar javascript dentro de un archivo CoffeeScript, puede hacerlo a través de acentos abiertos:

jQuery -> 
    `function abc() { return 123; } // js syntax here` 

Vea aquí: http://coffeescriptcookbook.com/chapters/syntax/embedding_javascript

Esto es bastante confuso, por lo que generalmente es una mejor idea convertir el código a coffeescript, en cuyo caso puede usar el convertidor js2coffee.org como sugirió DanS.

Cuestiones relacionadas