Quel est le problème avec mon code angulaire? Je reçois:
Cannot read property 'remove' of undefined at BrowserDomAdapter.removeClass ...
HTML
<ol class="breadcrumb">
<li *ngClass="{active: step==='step1'}" (click)="step='step1; '">Step1</li>
<li *ngClass="{active: step==='step2'}" (click)="step='step2'">Step2</li>
<li *ngClass="{active: step==='step3'}" (click)="step='step3'">Step3</li>
</ol>
Réponses:
La version angulaire 2, ..., 9 propose plusieurs façons d'ajouter des classes conditionnellement:
taper un
taper deux
et plusieurs options:
tapez trois
tapez quatre
la source
[ngClass]="js expression returning html class string"
ce qui sont les mêmes dans ce sens[ngClass]=...
au lieu de*ngClass
.*
est uniquement pour la syntaxe abrégée des directives structurelles où vous pouvez par exemple utiliserau lieu de la version équivalente plus longue
Voir également https://angular.io/docs/ts/latest/api/common/index/NgClass-directive.html
Voir également https://angular.io/docs/ts/latest/guide/template-syntax.html
la source
*
permet juste une synaxie simplifiée au lieu d'une forme canonique.Une autre solution serait d'utiliser
[class.active]
.Exemple :
la source
C'est la structure normale pour
ngClass
:Donc dans votre cas, utilisez-le comme ça ...
la source
avec les exemples suivants, vous pouvez utiliser "IF ELSE"
la source
Vous pouvez utiliser ngClass pour appliquer le nom de classe à la fois conditionnellement et non dans Angular
Par exemple
Conditionnel
Condition multiple
Expression de méthode
Cette méthode sera à l'intérieur de votre composant
la source
Vous devriez utiliser quelque chose (
[ngClass]
au lieu de*ngClass
) comme ça:la source
Dans
Angular 7.X
Les classes CSS sont mises à jour comme suit, selon le type d'évaluation de l'expression:
chaîne - les classes CSS répertoriées dans la chaîne (délimitées par des espaces) sont ajoutées
Array - les classes CSS déclarées comme éléments Array sont ajoutées
Les clés d'objet sont des classes CSS qui sont ajoutées lorsque l'expression donnée dans la valeur est évaluée à une valeur vraie, sinon elles sont supprimées.
la source
pour étendre MostafaMashayekhi sa réponse pour l'option deux> vous pouvez également chaîner plusieurs options avec un ','
* NgIf peut également être utilisé dans certaines de ces situations, généralement combiné avec un * ngFor
la source
Pendant que je créais un formulaire réactif, j'ai dû assigner 2 types de cours sur le bouton. Voici comment je l'ai fait:
Lorsque le formulaire est valide, le bouton a btn et btn-class (de bootstrap), sinon juste btn class.
la source
De plus, vous pouvez ajouter avec la fonction de méthode:
En HTML
Dans component.ts
la source
Soit, YourCondition est votre condition ou une propriété booléenne, alors faites comme ça
la source
ngClass
syntaxe:Vous pouvez utiliser comme ceci:
la source
C'est ce qui a fonctionné pour moi:
la source
Vous pouvez utiliser [ngClass] ou [class.classname], les deux fonctionneront de la même manière.
[class.my-class]="step==='step1'"
OU
[ngClass]="{'my-class': step=='step1'}"
Les deux fonctionneront de la même façon!
la source
Pas pertinent avec la
[ngClass]
directive mais j'obtenais également la même erreur queet je pensais que c'était l'erreur dans mon
[ngClass]
état mais il s'est avéré que la propriété à laquelle j'essayais d'accéder dans l'état[ngClass]
n'était pas initialisée.Comme je l'avais dans mon fichier dactylographié
et dans mon
[ngClass]
j'utilisaiset j'obtenais l'erreur
et la solution a été de réparer ma propriété
J'espère que cela aide quelqu'un qui essaie de faire correspondre l'état d'une propriété
[ngClass]
la source
Le code est un bon exemple de ngClass si la condition else.
la source
Essayez comme ça ..
Définissez votre classe avec ''
la source