Как я могу предоставить компоненту ViewChildren
родительский компонент как ContentChildren
?
Скажем, у меня есть компонент, MatSelect
, который ищет ContentChildren
вот так :
@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
, как дочерние элементы содержимого.
В этой другой демонстрации Я пытаюсь найти элементы Pane
, сгенерированные PaneGeneratorComponent
со свойством @ContentChildren
в TabComponent
. Он обнаруживает элементы Pane
, которые жестко закодированы, но не элементы, сгенерированные PaneGenerator
.
У меня есть еще немного информации и демонстрация моего точного варианта использования в вопросе, который я отправил ранее .