Angular 2 Generieren Sie den Klassennamen basierend auf ngFor Index

8

Ich stoße auf ein Problem bei der Erstellung eines dynamischen Klassennamens, der auf dem Angular 2 ngFor-Schleifenindex basiert. Ich musste die folgende Syntax verwenden, weil Angular 2 ngFor und ngIf auf demselben Element nicht mag.

Wie kann ich mit dieser Syntax einen dynamischen Klassennamen mit dem Wert von index bei {{index}} erstellen. Ich weiß, dass dies kein richtiger A2-Code ist, aber ich habe es in mein Code-Beispiel eingefügt, um Ihnen zu zeigen, wo ich den Wert sehen möchte.

%Vor%

Der Wert "variants" ist ein leeres Array mit einer festgelegten Länge. "Variante" hat also keinen Wert.

"currentVariant" ist eine Zahl, die standardmäßig 0 ist.

BEARBEITEN : Dieser obige Code ist korrekt. Ich hatte einen weiteren irrelevanten Fehler, von dem ich dachte, dass er mit diesem Code verbunden war.

    
AJStacy 13.01.2016, 22:11
quelle

1 Antwort

8

Ich verstehe dein Problem nicht wirklich; -)

Es gibt zwei Möglichkeiten, Klassen für ein bestimmtes Element festzulegen:

  • Wie Sie mit geschweiften Klammern umgehen:

    %Vor%

    Test wird nur für das dritte Element (Index 2) und rot angezeigt.

  • Wie von @Langley vorgeschlagen, verwenden Sie die ngClass -Direktive

    %Vor%

    Der Unterschied besteht darin, dass Sie die NgClass-Direktive im providers -Attribut Ihrer Komponente angeben müssen. Auch hier wird Test nur für das dritte Element (Index 2) und rot angezeigt.

Ihre folgenden Sätze: "Der Wert variants ist ein leeres Array mit einer festgelegten Länge. variant hat also keinen Wert. currentVariant ist eine Zahl, die standardmäßig 0 ist." Wie erwarten Sie, dass etwas angezeigt wird, wenn Ihr Array leer ist? Ein ngFor ist eine Iteration ...

Hoffe es hilft dir, Thierry

    
Thierry Templier 14.01.2016, 08:25
quelle

Tags und Links