16 votes

Comment importer un fichier Javascript dans une vue Haml ?

Je veux inclure une fonctionnalité Javascript dans une vue Haml, mais je ne veux pas qu'elle soit insérée dans chaque vue. Dois-je placer le fichier Javascript dans public/javascripts ou puis-je le placer dans app/assets/javascripts pour le cacher à l'utilisateur, tout en le référençant dans le fichier de vue Haml ?

Comment feriez-vous ces deux options, si elles sont possibles ?

31voto

Draiken Points 2052

Vous devriez simplement utiliser

!!!
%html
  %head
    = javascript_include_tag "my_js_file"

si c'est spécifique à un endroit, vous devez utiliser content_for

!!!
%html
  %head
    = yield(:javascripts)

Et ensuite, selon vous

- content_for :javascripts do
  = javascript_include_tag "my_js_file"

11voto

Ben Taitelbaum Points 5119

Inclure directement

Si vous voulez que le javascript soit inclus directement dans le haml, vous pouvez utiliser :javascript

:javascript
  $(function() { alert("js inside haml"); }

Vous pouvez mettre cela dans un partiel et ensuite juste rendre le partiel pour garder vos vues propres.

Référence

Si vous voulez simplement référencer le javascript et faire en sorte que le navigateur l'intègre, vous devriez utiliser javascript_include_tag comme toujours. Ici, vous devrez faire en sorte que le fichier javascript soit un manifeste, au lieu de le demander dans le fichier application.js manifeste. N'oubliez pas d'ajouter le manifeste à config.assets.precompile dans votre application.rb, conformément à http://guides.rubyonrails.org/asset_pipeline.html

(dans votre jambon) :

= javascript_include_tag 'somefile'

(dans config/application.rb) :

config.assets.precompile += ['somefile.js']

0voto

Wei Points 736

Si votre javascript est petit et très simple, je suggère d'inclure le javascript directement dans le HAML :

:javascript
  alert('hi hi!')

Sinon, vous devez utiliser le pipeline d'actifs. Il s'assure que vos javascripts sont prétraité, compressé et réduit au minimum . Cela permet également de garder vos javascripts bien organisés (par exemple, séparation entre vos scripts et les scripts du vendeur) et facilement testables (avec des frameworks de test comme jasmin / jasminerice / evergreen ). Si vous êtes nouveau dans le domaine du pipeline d'actifs, aquí est une bonne lecture =)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X