Angular 识别具有ng内容的角度8多项目中的插槽

Angular 识别具有ng内容的角度8多项目中的插槽,angular,angular8,ng-content,Angular,Angular8,Ng Content,我正在尝试使用Angular 8构建一个简单的仪表板组件;仪表板中包含的每个项目都可以是任何内容。 我构建了两个不同的组件,一个用于仪表板本身(主容器),另一个用于标识仪表板中的区域(这将接收小部件组件列表) 目前我的解决办法很简单。基本上,我使用ng content在主组件中投影我的转置元素。 我给你看一些代码 通用仪表板容器: <my-dashboard> <my-area widgets="[]"></my-area> <my-area w

我正在尝试使用Angular 8构建一个简单的仪表板组件;仪表板中包含的每个项目都可以是任何内容。 我构建了两个不同的组件,一个用于仪表板本身(主容器),另一个用于标识仪表板中的区域(这将接收小部件组件列表)

目前我的解决办法很简单。基本上,我使用ng content在主组件中投影我的转置元素。 我给你看一些代码

通用仪表板容器:

<my-dashboard>
  <my-area widgets="[]"></my-area>
  <my-area widgets="[]"></my-area>
  <my-area widgets="[]"></my-area>
</my-dashboard>

my dashboard组件就是这样的:

<ng-content></ng-content>

使用这种方法,所有东西都可以工作,但我无法访问投影组件的单个距离,例如,当我们确切知道插槽时。例如,如果我想从dahboard组件获取某个组件的信息,这是不可能的。
这是正确的方法吗?我在文档中找不到关于内容投影的更多信息。

这就是ContentChildren或ContentChild装饰器在仪表板组件中的用途:(假设组件导出为MyAreaComponent)

@ContentChildren(MyAreaComponent)
myAreaComponents:QueryList;
ngAfterContentInit(){//这是ContentChildren可用的地方
console.log(this.myAreaComponents);
}
@ContentChildren(MyAreaComponent)
myAreaComponents: QueryList<MyAreaComponent>;

ngAfterContentInit() { // this is where ContentChildren are available
  console.log(this.myAreaComponents);
}