Angular provides multiple ways to add css classes based on conditions.
Lets say we have a div and we want to apply the classes myclass1, myclass2, myclass3 based on different conditions using a variable counter defined in the component class.
Following are the different snytax methods we can use to add css class with conditions.
Method # 1
Add myclass1, if the counter is equal to 1
<div [class.myclass1]="counter === 1">
Method # 2
Add myclass1, if the counter is equal to 1
<div [ngClass]="{'myclass1' : counter === 1}">
Add myclass2, if the counter is greater than 1
<div [ngClass]="{'myclass2' : counter > 1}">
You can use the same syntax to add multiple classes with their own conditions, each class-condition pair will be spearated by a comma.
For example, here the myclass1 will be added if the counter's value is 1, myclass2 will be added if the counter's value is 2, and myclass3 if the counter has a value greater than 2
<div [ngClass]="{'myclass1': counter === 1, 'myclass2' : counter === 2 },
'myclass3' : counter > 2 }">
Method # 3
We can use the ternary operator to pick one of the two classes.
If the counter's value is 1, then myclass1 will be added, else myclass2 will be applied.
<div [ngClass]="counter == 1 ? 'myclass1' : 'myclass2'">
Method # 4
You can write a function inside the component which will return the the class(es) to be added based on some complex condition.
<div [class]="getClass(6)">
The function will return class names like this:
getClass(count: number){
var classList='';
if(count === 1){
classList = 'myclass1';
}else if (count > 1 && count < 5){
classList = 'myclass2';
}else if(count > 5){
classList = 'myclass2 myclass3';
}
return classList;
}
}
No comments:
Post a Comment