1

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

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

TS

getclass(){
return 'myclassname'
}
jitender
  • 10,238
  • 1
  • 18
  • 44

3 Answers3

1

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

Prabhakaran M
  • 147
  • 2
  • 8
0

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`
}
jitender
  • 10,238
  • 1
  • 18
  • 44
0

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;
}
MGX
  • 2,534
  • 2
  • 14