Представление просмотра дочерних элементов в качестве дочерних элементов родительского компонента - PullRequest
1 голос
/ 25 апреля 2019

Как я могу предоставить компоненту 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.

У меня есть еще немного информации и демонстрация моего точного варианта использования в вопросе, который я отправил ранее .

...