Ich habe zwei Fragen hier zu sehen, wie Attribute auf einem Element bedingt hinzufügen und entfernen (Is it possible to conditionally display element attributes using Angular2?) aber meine Frage ist, ob es möglich ist hinzuzufügen und zu entfernen Attribut-Direktiven? Ich bin in der Lage, das Attribut hinzuzufügen und zu entfernen, aber Angular "kompiliert" das Attribut nicht als Attribut-Direktive, aber das Attribut sitzt einfach da und tut nichts. Hier ist ein Beispiel für 2 Tags:Angular 2 bedingt hinzufügen Attribut-Direktiven
Die erste ist die, die ich versuche, die Attribut-Anweisung bedingt anzuwenden, und die zweite hat es die ganze Zeit.
Hier ist, wie ich das Attribut beantrage (vielleicht gibt es eine andere Art und Weise Attribut Richtlinie anzuwenden?)
<h1 [attr.colored]="check ? '': null">Testing something</h1>
Und hier ist die Richtlinie:
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: Es gibt einige Antworten, aber sie sind für AngularJS (1)
gibt es eine Möglichkeit, wie Winkel zu zwingen, irgendwie dieses Element neu zu kompilieren, es anzuwenden? oder gibt es einen anderen Weg, dies zu tun? Ich brauche es jetzt nicht, aber ich war nur neugierig –
Nicht so weit ich weiß. Was Sie tun können, ist ein Element mit und ohne den directory-Selektor hinzuzufügen und 'ngIf' zu verwenden, um zu ändern, welcher dem DOM hinzugefügt/entfernt werden soll. –
@ GünterZöchbauer kannst du dir bitte meine Frage anschauen vielleicht hast du eine Idee http://stackoverflow.com/questions/37489029/how-can-i-get-the-value-from-json-url – Abderrahim