Wie deklariere ich eine dynamische Vorlagenreferenzvariable innerhalb eines ngFor
Elements?
Ich möchte die Popover-Komponente von ng-bootstrap verwenden. Der Popover-Code (mit HTML-Bindung) lautet wie folgt:
<ng-template #popContent>Hello, <b>{{name}}</b>!</ng-template>
<button type="button" class="btn btn-secondary" [ngbPopover]="popContent" popoverTitle="Fancy content">
I've got markup and bindings in my popover!
</button>
Wie kann ich diese Elemente einwickelnngFor
?
<div *ngFor="let member of members">
<!-- how to declare the '????' -->
<ng-template #????>Hello, <b>{{member.name}}</b>!</ng-template>
<button type="button" class="btn btn-secondary" [ngbPopover]="????" popoverTitle="Fancy content">
I've got markup and bindings in my popover!
</button>
</div>
Hmmm ... irgendeine Idee?
angular
ng-bootstrap
angular-template
Boo Yan Jiong
quelle
quelle
ng-template
und mit der Vorlagenreferenzvariablen darauf verweisen. Jetzt möchte ich dieses Popover in einemngFor
Element verwendenAntworten:
Vorlagenreferenzvariablen sind auf die Vorlage beschränkt, in der sie definiert sind. Eine Strukturanweisung erstellt eine verschachtelte Vorlage und führt daher einen separaten Bereich ein.
Sie können also nur eine Variable für Ihre Vorlagenreferenz verwenden
und es sollte funktionieren, weil es bereits innen deklariert hat
<ng-template ngFor
Plunker Beispiel
Für weitere Details siehe auch:
quelle
@ViewChild
diese Lösung nicht verwenden können , wenn Sie eine verwenden (und dann die von @ AlexBoisselle verwenden sollten)Dies ist die beste Lösung, die ich gefunden habe: https://stackoverflow.com/a/40165639/3870815
In dieser Antwort verwenden sie:
Erstellen einer Liste dieser dynamisch generierten Komponenten. Ich kann es nur empfehlen!
quelle
Eine andere Möglichkeit, dies zuzulassen, besteht darin, eine Komponente zu erstellen, die die Schaltfläche und die ng-Vorlage umschließt
Und haben Sie die folgenden in der Popover-Button-Komponente
quelle
Sie können
trackBy: trackByFn
in verwenden*ngFor
quelle