@ViewChild中的读取参数是什么

Pan*_*are 73 angular

需要帮助理解以下语句中{read:ViewContainerRef}的含义.

@ViewChild('myname', {read: ViewContainerRef}) target;
Run Code Online (Sandbox Code Playgroud)

Gün*_*uer 94

可以使用#myname模板变量将具有各种类型的多个实例与元素标签相关联.

对于每个元素,都有一个ElementRef和ViewContainerRef(可能是应用于该标记的组件或指令的其他元素).

如果元素是一个组件,那么就有组件实例.

也可以有一个或多个指令应用于该元素

随着{read: SomeType}你告诉我应该从#myname模板变量的元素返回什么类型.

如果您不提供read参数,则@ViewChild()返回

  • ElementRef 实例,如果没有应用组件,或者
  • 组件实例,如果有.
  • 如果你想得到不同的东西,你需要明确告诉使用read.

另请参见angular 2/typescript:获取模板中的元素

  • 这仅支持与节点关联的Angular类型。HTMLElement不是其中之一。ElementRef允许使用ElementRef.nativeElement访问HTMLElement。 (2认同)