How to add condition and function both in ngClass?

53 views Asked by At

I need to use both function and condition in ngClass like below:

<div [ngClass] = "i==1 ? 'active':'inactive',getclass()">
</div

TS

getclass(){
return 'myclassname'
}
3

There are 3 answers

0
Prabhakaran M On BEST ANSWER

You can use function as well. You just need to pass as an array like below,

<div [ngClass]="[i === 1 ? 'active': 'inactive', getClass()]"> </div

You can find other ways in this link https://angular.io/api/common/NgClass#description

0
jitender On

Not sure what's the use case of your function here but you can pass i value to the function and call the function only something like

<div [ngClass] = "getclass(i)">
</div

getclass(input){
   let cls=input==1 ? 'active':'inactive';
   return `${cls} myclassname`
}
0
MGX On

ngClass accepts objects

<div [ngClass]="{
  active: i === 1,
  inactive: i !== 1,
  myclassname: true
}">
</div>

Otherwise, use an input on the class

<div [ngClass]="getClasses(i)"></div>
getClasses(i: number) {
  const classes: any = { myclassname: true };
  if (i === 1) classes.active = true;
  else classes.inactive = true;
}