Tengo una directiva simple y me gustaría agregarle una clase:
@Directive({ selector: '[appFieldLabel]', }) export class FieldLabelDirective { @Input() tooltip: string; @Input() showOptional = true; @HostBinding('class.text-truncate') test = true; } esto funciona, pero quiero que siempre esté configurado, ¿hay alguna manera sin asignar una propiedad inútil como aquí test = true;
gracias
En lugar de prop = true , puede enlazar a class y luego establecer el valor en las clases que desee, así:
@Directive({ selector: '[appFieldLabel]', }) export class FieldLabelDirective { @Input() tooltip: string; @Input() showOptional = true; @HostBinding('class') private hostClass = 'text-truncate'; }Es menos inútil, porque puedes modificar clases a través de variables.
También podría vincular la clase de esta manera:
@Directive({ selector: '[appFieldLabel]', host: { 'class': 'text-truncate', } }) export class FieldLabelDirective { // the rest of the code }