Какой параметр чтения в @ViewChild для


Ответы:


119

Может быть несколько экземпляров различных типов, связанных с тегом элемента с #mynameпеременной шаблона.

Для каждого элемента есть ElementRefи ViewContainerRef(возможно, другие из компонентов или директив, примененных к этому тегу).

Если элемент является компонентом, то существует экземпляр компонента.

К элементу также может применяться одна или несколько директив.

С {read: SomeType}помощью #mynameпеременной шаблона вы указываете, какой тип должен быть возвращен из элемента .

Если вы не предоставили readпараметр, @ViewChild()возвращает

  • ElementRef экземпляр, если компонент не применяется, или
  • экземпляр компонента, если есть.
  • Если вы хотите получить что-то другое, вам нужно явно указать using read.

См. Также Как выбрать элемент в шаблоне компонента?


«возможно, другие из компонентов или директив, примененных к этому тегу»: как мы можем получить полный список возможных типов?
Ghetolay

Директивы и компоненты, перечисленные в directives: [...]текущем компоненте или в том, PLATFORM_DITECTIVESгде совпадают селекторы. Вы можете использовать stackoverflow.com/questions/35233572/… для исследования работающего приложения.
Günter Zöchbauer

3
Это поддерживает только типы Angular, связанные с узлом. HTMLElementне один из них. ElementRefпозволяет получить доступ к HTMLElement с помощью ElementRef.nativeElement.
Günter Zöchbauer

1
Просто пробую все и исследую исходники Angular2.
Günter Zöchbauer

1
Вы не можете, когда элемент является компонентом. Вы можете указать только то, что хотите, если используете@ViewChild(... read: ElementRef) ...
Günter Zöchbauer
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.