2016-03-24 10 views
0

Situation: Ich habe für jede Zeile eine Tabelle mit verschiedenen Hintergrundfarben.
Ausgabe: Wenn ich die Zeilen nach einer Spalte sortiere, würde ich gerne ein wenig alle <td> aus dieser Spalte, basierend auf der background-color der Zeile. Bis jetzt habe ich so etwas wie dieses:Die aktuelle Hintergrundfarbe dynamisch mit AngularJS verdunkeln

<tr ng-repeat='row in rows' ng-class="rowClass(row)"> 
    <td ng-repeat=column in columns" 
     ng-style="{'background-color': (isSortedBy(column.key)) ? 'rgba(0, 0, 0, 0.05)' : ''}"> 
    {{column.text}} 
    </td> 
</tr> 

Was ich jetzt tun ändert sich nur die Farbe auf einem grauen (0,05 von schwarz). Ich kann nicht herausfinden, wie ich die aktuelle Hintergrundfarbe des <td> hinzufügen 0,05 von schwarz darüber und wenden Sie die neue background-color. In meinem Projekt verwende ich sass Dateien, wenn es helfen kann.

Antwort

0

Ich denke, es wäre sauberer, einfach eine Klasse sorted anzuwenden und dann das Styling mit CSS zu tun.

ng-class="{'sorted': (isSortedBy(column.key)) }

einfacher zu warten, wenn alle Styling durch Ihre CSS verwaltet wird.

Dann könnten Sie SASS darken() verwenden, um die Farben für jede Spalte zu verdunkeln.

+0

Wenn ich 20 verschiedene Hintergrundfarben habe, ist das kein Spielgewinner. – Leo

+0

@Leo Sie wissen nicht, wie Ihr Setup aussieht? Werden die Farben jeder Spalte randomisiert/berechnet? Wenn nicht, halte ich es für besser, sie über CSS zu kontrollieren. Dass JS das Aussehen der Dinge beeinflusst, ist in den meisten Fällen eine Mischung aus Verantwortlichkeiten. –

Verwandte Themen