如何将组件的ViewChildren
作为ContentChildren
公开给父组件?
假设我有一个looks for ContentChildren
like this的组成部分MatSelect
:
@ContentChildren(MatOption, { descendants: true }) options: QueryList<MatOption>;
如果我按如下方式使用此组件:
<mat-select>
<mat-option>
</mat-option>
</mat-select>
它将检测mat-option
元素为内容子级。
现在,如果我创建一个生成这些选项的组件,例如OptionGeneratorComponent
,其模板如下:
<mat-option *ngFor="let option of options" [value]="option">
{{option.viewValue}}
</mat-option>
然后我将此组件用作前面提到的MatSelect
组件的内容,如下所示:
<mat-select>
<option-generator> <!-- option-generator instead of mat-option -->
</option-generator>
</mat-select>
MatSelect
组件未检测到mat-option
元素生成的OptionGenerator
元素。
如何使MatSelect
组件检测由MatOption
生成的OptionGeneratorComponent
组件作为内容子级。
In this other demo我正在尝试查找Pane
中具有PaneGeneratorComponent
属性的@ContentChildren
生成的TabComponent
元素。它检测到Pane
元素是经过硬编码的,而不是PaneGenerator
生成的元素。
在a question I posted earlier中,我有一些有关我的确切用例的信息和演示。