Just another way to do it but easier and more understandable to me.
You let me know what you think
import { Directive, Input} from '@angular/core';
@Directive({
selector: '[whatever]',
host: {
// These are like ngClass class condition values
'[class.custom-class1]': 'true', // Default class for example
'[class.custom-class2]': 'foo === "expectedValue"', // Predicate1
'[class.custom-class3]': 'foo !== "expectedValue"', // Predicate2
},
})
export class WhateverDirective {
@Input() foo: string;
}