Von dem, was ich in der Angular 2 documentation von QueryList
gelesen haben, @Query
sollte für die Fähigkeit, erlauben einen Verweis auf eine untergeordnete Komponente in eine bestimmte Komponente zu injizieren.Angular 2.0 - Was ist der Unterschied zwischen @ViewQuery und @Query
Mit @QueryView
ich habe es geschafft, wie so eine Referenz auf ein Kind DOM-Element erhalten:
// Parent component's template
<my-component #test>
// Parent component
class ParentComponent {
constructor(@Query('test') child: QueryList<any>) {...}
}
Ich erwartete, dass @Query
die passende Komponente zurückgeben kann eher als die DOM-Element, aber ich habe es nicht geschafft um es zum Laufen zu bringen, noch habe ich irgendeine Dokumentation gefunden, die das anzeigt.
Was ist der Unterschied zwischen diesen beiden Dekorateuren?
'@ ViewQuery' fragt das View-DOM (die Ansicht, die Sie in einer Vorlage angeben, auch Shadow-DOM genannt) und Query-Abfragen für das helle DOM ab, wenn Sie es in einer Direktive verwenden (siehe [Problem] (https : //github.com/angular/angular/issues/1935)). Beachten Sie, dass in der nächsten Version alpha38 sowohl ViewQuery als auch Query umbenannt werden (siehe [# 3922] (https://github.com/angular/angular/issues/3922)). –
Eric, was meinst du mit 'Licht DOM'? Gibt es eine Möglichkeit, einen Verweis auf untergeordnete Komponenten zu erhalten, sodass Sie dann seine Methoden aufrufen können? Danke für die Warnung bezüglich alpha38! – jaker
Ich habe 'Licht DOM' von hier [Über shadow DOM] (https://www.polymer-project.org/0.5/platform/shadow-dom.html). Hier ist ein Beispiel, wie es geht: [plnkr] (http://plnr.co/edit/WGupqC?p=preview), siehe den Kommentar darin. –