2012-07-13 10 views
23

En mi archivo CoffeeScript, clients.js.coffee,función CoffeeScript creado en app/activos/javascript no encontrado

myFunction = (variable) -> 

creé una función en CoffeeScript en app/assets/javascript. Pero cuando intento llamar a esa función, la consola me muestra un error que indica que no se encuentra la función.

puedo comprobar la fuente de la página y se nota que el script se carga:

<script src="/assets/clients.js?body=1" type="text/javascript"></script> 

Esto es lo que se encontró en el interior de la fuente de la escritura:

(function() { 
    var myFunction; 

    myFunction = function(variable) {} 
}).call(this); 

Cualquier idea de lo que me estoy perdiendo ? ¿Qué debo hacer para llamar a la función?

+0

Ha creado una función en un ámbito de función anónima. Por lo tanto, no está visible fuera de – zerkms

+0

posible duplicado de [¿Por qué le está sucediendo esto a CoffeeScript?] (Http://stackoverflow.com/questions/6481986/why-is-the-the-the-the-the-the-the-the-coffeescript) –

+0

¿Cómo puedo hacer esto? resolverlo en rieles? Gracias – revolver

Respuesta

53

para que sea accesible desde el exterior, todo lo que tiene que hacer es añadir una '@' delante. Esto adjuntará la función al objeto ventana.

@myFunction = (variable) -> 
+1

me salvó el tiempo. Gracias – Uzair

5

enlazarlo a la ventana

myFunction = (variable) -> 
    alert('zzzzzzzz') 

window.myFunction = myFunction 
+0

También aquí hay un screencast que podría ser útil - http://house9.blogspot.com/2011/05/rails-31-javascript-execution.html – house9