Stworzyłem niestandardowy komponent, który umieściłem w pętli for np
<div *ngFor="let view of views">
<customcomponent></customcomponent>
</div>
Rezultatem będzie:
<customcomponent></customcomponent>
<customcomponent></customcomponent>
<customcomponent></customcomponent>
Chciałbym wiedzieć, jak mogę uzyskać odniesienie do tych komponentów za pomocą składni @viewchild lub w inny sposób, gdy liczba tych składników może się różnić
gdy komponentowi można nadać nazwę np
<customcomponent #compID></customcomponent>
Następnie mogę się do tego odnieść w następujący sposób:
@ViewChild('compID') test: CustomComponent
Jak mam się do niego odwołać, gdy tak nie jest, np. Używając ewentualnie indeksu?
(To pytanie nie odnosi się do używania ElementRef, jak w przypadku innych pytań, które zostały wcześniej zadane, jak widać z odpowiedzi wymienionych poniżej) To pytanie dotyczy dostępu do wielu @ViewChild i korzystania z zapytań list.
AfterViewChecked
i napisz metodęngAfterViewChecked
. Ta metoda jest wyzwalana podczas każdego cyklu zmian po zaktualizowaniu widoku. W jej ramach możesz sprawdzić, czy Twoja instancja viewChild została zdefiniowana. Zobacz dokumentacjęUżyj dekoratora @ViewChildren w połączeniu z QueryList. Oba pochodzą z „@ angular / core”
@ViewChildren(CustomComponent) customComponentChildren: QueryList<CustomComponent>;
Robienie czegoś z każdym dzieckiem wygląda tak:
this.customComponentChildren.forEach((child) => { child.stuff = 'y' })
Dalszą dokumentację można znaleźć na angular.io, w szczególności: https://angular.io/docs/ts/latest/cookbook/component-communication.html#!#sts=Parent%20calls%20a%20ViewChild
źródło