2016-05-26 5 views

Antwort

50

Es kann mit dem Element-Tag mit dem #myname Template-Variable zugeordnet mehr Instanzen von verschiedenen Typen sein wird.

Für jedes Element gibt es eine ElementRef und ViewContainerRef (möglicherweise andere Komponenten oder Anweisungen, die auf diese Variable angewendet werden).

Wenn das Element eine Komponente ist, dann gibt es die Komponenteninstanz.

Es können auch eine oder mehrere Richtlinien auf das Element angewendet werden

Mit {read: SomeType} Ihnen sagen, welche Art von dem Element mit der #myname Template-Variable zurückgegeben werden soll.

Wenn Sie die read Parameter nicht weiter, @ViewChild() gibt die

  • ElementRef Instanz, wenn es keine Komponente angewandt wird, oder die
  • Komponenteninstanz, wenn es.
  • Wenn Sie etwas anderes erhalten möchten, müssen Sie dies explizit mit read mitteilen.

Siehe auch angular 2/typescript : get hold of an element in the template

+0

‚vielleicht andere von Komponenten oder angewandten Richtlinien zu diesem Tag‘: Wie können wir die vollständige Liste möglicher Typen? – Ghetolay

+0

Die Direktiven und Komponenten, die in 'directives: [...]' der aktuellen Komponente oder in 'PLATFORM_DITECTIVES' aufgelistet sind, wo ein Selector übereinstimmt. Sie können http://stackoverflow.com/questions/35233572/how-to-access-angular2-component-specific-data-in-console/35233711#35233711 untersuchen, um eine laufende Anwendung zu untersuchen. –

+0

Ho ist also nur eines von '' 'ElementRef''',' '' ViewContainerRef''' oder '' Directive''', wobei die vom Benutzer definierten Komponenten und Direktiven nur untergeordnete Typen von '' Directive'' sind '? Ich habe über andere Typen nachgedacht, nicht über Untertypen, die durch benutzerähnliche Anweisungen definiert wurden. Zum Beispiel injizieren Sie direkt '' '' HTMLElement''' anstelle von '' 'ElementRef'''. – Ghetolay

Verwandte Themen