Я видел здесь два вопроса, как условно добавлять и удалять атрибуты для элемента (Is it possible to conditionally display element attributes using 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;
}
}
Edit: есть пара ответов, но они для AngularJS (1)
есть ли способ, как заставить угловой перекомпилировать этот элемент как-то применить его? или есть ли другой способ, как это сделать? Мне это не нужно прямо сейчас, но мне было просто любопытно –
Не настолько, насколько мне известно. Что вы можете сделать, так это добавить один элемент и один без селектора директив и использовать 'ngIf' для переключения, который следует добавить/удалить из DOM. –
@ GünterZöchbauer вы можете взглянуть на мой вопрос, может быть, у вас есть идея http://stackoverflow.com/questions/37489029/how-can-i-get-the-value-from-json-url – Abderrahim