将视图子级作为父级组件的子级公开

时间:2019-04-25 08:42:33

标签: angular typescript angular-material angular-material2 angular-components

如何将组件的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中,我有一些有关我的确切用例的信息和演示。

0 个答案:

没有答案