Bei jeder Webapp, die ich erstelle, stoße ich auf dieses Problem. Ich möchte Klassen für HTML-Elemente bedingt festlegen. Zum Beispiel, manchmal ist die <div>
für eine Stelle aussieht:
<div class="post">...</div>
Und manchmal sieht es so aus:
<div class="post even recent replied_to author_is_admin">...</div>
Jede Klasse nach post
ist da, weil irgendeine Logik beschlossen hat, dass es so sein sollte. Was ist der beste Weg dazu? In Rails+HAML, habe ich schuldig gewesen, Sachen wie zu tun:
-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(' ')}
...
Es ist nicht schön, und ich habe es gekürzt, um einen Helfer zu verwenden, damit ich dies tun kann:
.post{:class => "#{cycle('even', 'odd')} #{post_classes}"}
Trotzdem sollte es einfacher zu lesen sein, weil wir es ständig tun. Gibt es Methoden, mit denen Sie diesen Prozess kurz und lesbar gestalten?