Чтобы назначить хосту несколько классов, вы можете сделать это:
@HostBinding('class') classAttribute: string = 'classA classB';
Для вашего случая вы можете сделать что-то вроде этого:
@HostBinding('class') classAttribute: string;
// Example function that updates the classAttribute property
// You might handle it differently in your application
updateClassAttribute(color: string, isCompact: boolean) {
const classes: string[] = [`${color}-ui`];
if (isCompact) classes.push('compact-ui');
this.classAttribute = classes.join(' ');
}
Обратите внимание, что вышеуказанная логика функции можетзаписать в одну строку, например:
this.classAttribute = [ ...isCompact ? ['compact-ui'] : [], `${color}-ui` ];
Кроме того, вы можете рассмотреть возможность использования хранилища Redux (например, @ngrx/store
) для этих значений (isCompact
, color
), если они вам нужныв нескольких местах в вашем приложении.