Je viens de commencer à explorer Meteor, et dès le départ, j'ai quelque chose qui me laisse perplexe :
1) Je l'ai installé et j'ai exécuté meteor add coffeescript
.
2) J'ai converti le fichier myapp.js en .coffee.
3) J'ai enregistré le fichier.
À ce stade, Meteor génère un nouveau fichier myapp.js en compilant le fichier coffeescript. Ok, ça semble logique.
4) J'ai couru meteor
. Je vois l'application à localhost:3000
Cependant, si j'appuie sur le bouton, l'événement de clic du bouton se déclenche deux fois : une fois à partir de myapp.js
et une fois de myapp.coffee
.
Juste pour voir un test, j'ai ajouté ceci :
Template.hello.events "click input": ->
# template data, if any, is available in 'this'
console.log "You pressed the button" if typeof console isnt "undefined"
$('body').append('<div>test</div>')
Lorsque je clique sur le bouton, deux divs sont ajoutés.
Maintenant, si je supprime le compilateur myapp.js
le message "vous avez appuyé sur le bouton" ne se déclenche qu'une seule fois, et une seule division est ajoutée à la page. Cependant, si je sauvegarde le fichier .coffee, un nouveau fichier .js est généré à chaque fois, et maintenant tout le JS s'exécute deux fois.
Comment utiliser CoffeeScript avec Meteor pour que votre code ne s'exécute qu'une fois ?