/ / Pourquoi les fonctions Coffeescript ne sont-elles pas disponibles à partir de mon code HTML? - ruby-on-rails-3, scope, coffeescript, iced-coffeescript, coffeescript-resources

Pourquoi mes fonctions coffeescript ne sont-elles pas disponibles à partir de mon code HTML? - ruby-on-rails-3, scope, coffeescript, iced-coffeescript, coffeescript-resources

J'utilise des gemmes rails-backbone, coffeescript dans mon projet rails 3.2.6.

square = (x) -> x * x alert square(5)

Voici le fichier script blog.js.coffee qu'il produit:

(function() { var square; square = function(x) {return x * x;}; alert(square(5));

J'ai besoin d'appeler le square() méthode dans un autre fichier de vue.

Comment puis-je appeler ça? Y a-t-il quelque chose de mal que je fais?

Réponses:

2 pour la réponse № 1

Tout votre code dans Coffeescript sera dans une fonction anonyme invocante.

Pour l'appeler en dehors d'un fichier, écrivez simplement:

window.square = (x) -> x * x

alert(square(5)) dans une autre fonction

Le mieux que vous puissiez faire pour ne pas abuser de la fenêtre est un objet App qui contiendra toutes vos variables.

window.App={}
window.App.square=  (x) -> x * x

et alors alert(App.square(5))


-1 pour la réponse № 2

Appelez-le comme une fonction JavaScript normale:

<script>
square(5)
</script>