Я видел здесь два вопроса, как условно добавлять и удалять атрибуты элемента (Можно ли условно отображать атрибуты элемента с помощью Angular2?), но мой вопрос в том, можно ли добавлять и удалять директивы атрибутов ? Я могу добавить и удалить атрибут, но Angular не "компилирует" атрибут как директиву атрибута, но атрибут просто сидит там, ничего не делая. Вот пример из 2 тегов:
Первый - это тот, который я пытаюсь условно применить директиву атрибута, а второй - все это время.
Вот как я применяю атрибут (возможно, есть другой способ применения директивы атрибута?)
<h1 [attr.colored]="check ? '': null">Testing something</h1>
И вот директива:
import {Directive, ElementRef} from '@angular/core'
@Directive({
selector: '[colored]',
host: {
'(mouseenter)': 'onMouseEnter()',
'(mouseleave)': 'onMouseLeave()'
}
})
export class colorDirective {
constructor(private el: ElementRef) {
}
onMouseEnter() { this.highlight("yellow"); }
onMouseLeave() { this.highlight(null); }
private highlight(color: string) {
this.el.nativeElement.style.backgroundColor = color;
}
}
Изменить: есть несколько ответов, но они предназначены для AngularJS (1)