2012-07-13 12 views
23

Nel mio file CoffeeScript, clients.js.coffee,funzione CoffeeScript creata in app/attività/javascript non trovato

myFunction = (variable) -> 

ho creato una funzione in CoffeeScript in app/assets/javascript. Ma quando provo a chiamare quella funzione, la console mi mostra un errore che dice che la funzione non è stata trovata.

controllo il sorgente della pagina e si vede che lo script viene caricato:

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

Questo è ciò che è stato trovato all'interno della sorgente script:

(function() { 
    var myFunction; 

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

Qualche idea di cosa mi manca ? Cosa devo fare per chiamare la funzione?

+0

È stata creata una funzione in ambito anonimo. Quindi non è visibile all'esterno – zerkms

+0

possibile duplicato di [Perché questo sta accadendo al mio CoffeeScript?] (Http://stackoverflow.com/questions/6481986/why-is-this-happening-to-my-coffeescript) –

+0

Come faccio risolverlo in rotaie? Grazie – revolver

risposta

53

per renderlo accessibile dall'esterno, tutto quello che dovete fare è aggiungere un '@' davanti. Questo collegherà la funzione all'oggetto finestra.

@myFunction = (variable) -> 
+1

mi ha salvato tempo. Grazie – Uzair

5

Bind alla finestra

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

window.myFunction = myFunction 
+0

Anche qui c'è uno screencast che potrebbe essere utile - http://house9.blogspot.com/2011/05/rails-31-javascript-execution.html – house9

Problemi correlati