Angular 2 Change Class On Bedingung

9

Ich habe drei Schaltflächen in einer Ansicht und beim Laden der Seite zeige ich den Inhalt der ersten Schaltflächen an. Sobald eine Schaltfläche angeklickt wird, wird die Schaltfläche aktiv, aber beim ersten Laden der Seite wird die erste Schaltfläche nicht aktiviert. Um die erste Schaltfläche aktiv zu zeigen, habe ich diese zum div hinzugefügt:

%Vor%

Das Problem ist jetzt, wenn eine andere Schaltfläche angeklickt wird, die erste Schaltfläche die aktive Klasse behält. Ich werte die Daten aus, die basierend auf einer Zeichenfolge angezeigt werden. Beim Klicken auf jede Schaltfläche ändert sich die Zeichenfolge.

Wie kann ich eine Bedingung hinzufügen, um nach der aktuellen Zeichenfolge zu suchen? Wenn also die Zeichenfolge den aktuellen Daten entspricht, die angezeigt werden, fügen Sie die aktive Klasse zu dieser Schaltfläche hinzu?

So etwas suche ich:

%Vor%

Dies ist meine aktuelle Schaltfläche, aber die Klasse wird nicht hinzugefügt, wenn ich sie in dieser Syntax hinzufüge:

%Vor%

Um klar zu sein, wird die Zeichenfolge beim Laden der Seite standardmäßig auf "EQUIFAX" gesetzt.

Dies basiert auf der Antwort:

%Vor%     
wuno 08.11.2016, 18:27
quelle

3 Antworten

15

Sie können die CSS-Klasse basierend auf der Bedingung in NgClass directory selbst hinzufügen:

%Vor%

Sie können mehr über die NgClass -Direktive lesen und Beispiele finden hier .

    
Stefan Svrkota 08.11.2016, 18:30
quelle
3

Ihre Äquivalenzanweisung von [class.active]="shown == EQUIFAX" wird mit einer Variablen namens EQUIFAX verglichen.

Sie sollten stattdessen die Äquivalenz ändern, die mit der Zeichenfolge [class.active]="shown == 'EQUIFAX'"

verglichen werden soll

Wenn Sie [ngClass] verwenden, erhalten Sie [ngClass]="{'active': shown == 'EQUIFAX'}

Hier ist ein Spielplatz mit diesem implementiert: Ссылка

    
silentsod 08.11.2016 18:43
quelle
2

Sie können das tun:

%Vor%     
yanai edri 12.09.2017 08:51
quelle