Ich versuche eine Template-Variable für ein Element zu definieren und benutze sein verstecktes Attribut, um zu identifizieren, ob das Element tatsächlich im DOM vorhanden ist und dann ein anderes Element darauf anzeigt. Wenn es jedoch eine strukturelle Anweisung gibt, scheint die Template-Variable keinen Wert zurückzugeben.Zugriff auf Angular 2 Template-Variable in ngIf
<hr class="divider" *ngIf="true" #divi>
<div *ngIf="showResendWelcomeEmailButton">
<a *wpHasAnyPermission="[{'something': true}]"
#resendEmailBtn>
Resend Welcome Email
</a>
</div>
<div class="pull-right">
<a #editAccountBtn>Edit Account Details</a>
</div>
rbtn: {{resendEmailBtn?.hidden}}
ebtn: {{editAccountBtn?.hidden}}
dline: {{divi?.hidden}}
Ausgang ist
rbtn:
ebtn: false
dline:
Wie Sie sowohl die Template-Variablen auf Elemente sehen können, enthält Attribute ngIf
und wpHasAnyPermission
sind keine Werte zurück.
Was will ich schließlich tun ist resendEmailBtn
und editAccountBtn
in ngIf
von hr
zu verwenden, um den Teiler zu entscheiden, anzuzeigen.
Was ist der beste Weg, dies zu lösen? Ich möchte vermeiden, mit Komponentencode zu arbeiten. Versuchen Sie, dies in HTML zu lösen.
Ich bin gespannt, wie 'editAccountBtn' außerhalb zugänglich war. Was Sie erwähnt haben, gilt nur für Elemente mit strukturellen Attributen? Was wäre der beste Weg, um mein Problem zu lösen? – TechCrunch
Ich habe meine Antwort aktualisiert. –
Ich bin mir nicht sicher, ob ich die Frage klar gestellt habe. Was ich tun wollte, war '
' damit ich den Teiler nur anzeigen kann, wenn der Button vorhanden ist. Die Variable des hr-Elements interessiert mich nicht. – TechCrunch