将元素追加到QueryList(Angular)

时间:2018-01-25 07:42:44

标签: angular angular-material angular-material2

我试图合并两个QueryLists。问题是,我有几个mat-options,其中一些是通过组件外部的ng-content给出的,另一些是在组件中。换句话说,我使用ViewChildren获取其中一些,使用ContentChildren获取其他一些。我需要将它们放在同一个列表中,因此mat-select工作正常。

我知道this question完全相同,但它不起作用。我尝试了几次将两个QueryLists与.reset合并,但它的内容始终保持不变。即使我创建一个新的QueryList并且只想添加一些数字,它也不起作用。对此有什么解决方案吗?

编辑:

澄清我为什么要这样做:我创建了一个自己的组件,看起来像这样(简化):

<mat-form-field>
  <mat-select>
    <input #searchInput type="search" (keydown)="onKeyDownInput($event)" (input)="onSearchInput($event)"
      class="select-search"/>
      <mat-option class="hidden" disabled></mat-option>
    <ng-content></ng-content>
  </mat-select>
</mat-form-field>

它的目的是在下拉列表的顶部提供搜索输入。 Mat-Options来自外部,包含ng-content。我需要这个,因为它可以改变我想要显示的内容。还有一个隐藏和禁用的mat选项,因为否则mat-select的滚动逻辑无法正常工作。

1 个答案:

答案 0 :(得分:0)

我不明白你为什么要这样做,但我会做的是。改变你获得EventEmitter,你可以订阅并获得价值。你也可以使用其他的querylist进行组合。