Установить класс Angular HostBinding css в значение с помощью функции?

У меня есть компонент, который использует @HostBinding установить класс:

@HostBinding('class.dark-1') true;

Который работает отлично. Однако теперь мне нужно создать функцию в моем компоненте для динамического изменения класса.

Например, из dark-1 в light-2 когда кнопка в компоненте нажата.

Я знаю, как создать функцию и вызвать ее с помощью кнопки, но как мне изменить класс в привязке хоста и обновить пользовательский интерфейс новым классом?

2 ответа

Решение

Sinply дать ему имя свойства:

@HostBinding('class.dark-1') isDark = true;

Тогда вы можете изменить это:

this.isDark = false;

Или измените весь className:

@HostBinding('class') className = 'dark-1';

this.className = 'light-1';

Вы можете переключать clicked установите флажок при нажатии кнопки и установите классы с помощью получателей:

@HostBinding("class.dark-1") public get classDark1() {
    return !this.clicked;
}

@HostBinding("class.light-2") public get classLight2() {
    return this.clicked;
}

private clicked = false;

public onClick() {
    this.clicked = true;
}
Другие вопросы по тегам