Полагаю, это зависит от того, чего вы пытаетесь достичь.
Простое добавление класса к компоненту выполняется путем статического добавления его в тег, как вы уже упоминали.
Добавление класса условно может быть сделано несколькими способами, один из которых использует @HostBinding()
или свойство host
компонента
@Component({
...
})
class SomeComponent {
@HostBinding('class.someClassName') shouldAddClass: boolean;
}
Или
@Component({
host: {
'[class.active]': 'somePropertyName'
}
})
class SomeComponent {
somePropertyName: boolean;
}
Теперь класс active
будет добавлен, когда свойство имеет значение true
, и удален, когда он false
.
.
Другой альтернативой является использование директивы [ngClass]
, которая по сути делает то же самое, только что потребитель компонента решает, когда класс добавляется и удаляется:
<some-component [ngClass]="{ active: somePropertyThatsEitherTrueOrFalse }">