我在@ViewChildren装饰器上阅读this article,它说了关于read参数的以下内容:


  ViewContainerRef-需要创建时需要此令牌
  模板或组件动态

@ViewChildren(AlertComponent, { read: ViewContainerRef }) alerts: QueryList<AlertComponent>



我的理解是正确的,它返回子AlertComponent组件的视图容器引用,以便可以将内容动态添加到这些组件视图中吗?

最佳答案

每当编译器遇到任何元素的{ read: ViewContainerRef }时,它都会在该元素上创建一个视图容器。任何元素都可以充当视图容器。每个组件宿主视图可以具有许多子嵌入视图which are checked before组件视图子组件/宿主视图。

因此,当您使用以下内容时:

@ViewChildren(AlertComponent, { read: ViewContainerRef }) alerts;


您基本上是在说要在AlertComponent组件的宿主元素元素上创建视图容器。该视图容器将容纳当前组件而不是AComponent的子视图。如果您在div元素上定义了视图容器,则没有什么不同。视图容器与AComponent没有任何关系。

有关某些示例,另请参见this answer

关于javascript - 如果将ViewContainerRef指定为@ViewChildren的读取参数,它将引用哪些组件 View ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42130243/

10-12 12:57
查看更多