Dans chaque application web que je compile, je rencontre ce problème. Je veux mettre des classes sur des éléments HTML conditionnellement. Par exemple, parfois le <div>
pour un poste ressemble:Méthode recommandée: définition de classes HTML dans une application Web
<div class="post">...</div>
Et parfois, il ressemble à ceci:
<div class="post even recent replied_to author_is_admin">...</div>
Chaque classe après post
est là parce que une certaine logique a décidé qu'il devrait être. Quel est le meilleur moyen de cela? Dans Rails + HAML, je suis coupable de faire des choses comme:
-classes = []
-classes << cycle('even', 'odd')
-classes << 'recent' if post.recent?
-classes << 'replied_to' if post.replied_to?
-classes << 'author_is_admin' if post.author_is_admin?
.post{:class => classes.join(' ')}
...
Ce n'est pas assez, et je l'ai raccourci à utiliser une aide que je peux faire:
.post{:class => "#{cycle('even', 'odd')} #{post_classes}"}
Il semble toujours que cela devrait être plus facile à lire, parce que c'est quelque chose que nous faisons tout le temps. Avez-vous des méthodes pour rendre ce processus court et lisible?