Вопрос:
Можно ли использовать @HostBinding
таким образом, чтобы добавлять, удалять или переключать классы в ведущем элементе, но не удалять уже существующие классы, в частности, когда классы необходимо динамически переключать?
Например, это добавит класс light
и не нарушит работу предыдущих классов, однако light
не может быть динамическим.
Представьте себе этот визуализированный узел dom:
<div [classToggler] class="someClasses1 someClasses2' ></div>
С этим контроллером:
@HostBinding('class.light') isLight = theme === 'light'; // true
ngOnInit() {
this.store.select('classToggler').subscribe((className) => {
this.theme = className || 'light'
});
}
Где, как в этом примере, контроллер динамически добавит класс освещения, но, насколько мне известно, удалит другие классы в элементе хоста.
@HostBinding('class') theme;
ngOnInit() {
this.store.select('classToggler').subscribe((className) => {
this.theme = className || 'light'
});
}
В конце второй пример повторно отобразит элемент dom, чтобы он выглядел так:
<div [classToggler] class="light'></div>
Поэтому удалите предыдущие классы, что нежелательно. Есть идеи, как получить лучшее из обоих миров?
isLight
вместо назначения выражения? Это может сделать его реактивным так же, как и второй шаблон. Я посмотрю, смогу ли я смоделировать пример. - person Richard Matsen   schedule 29.11.2017