【问题标题】:Append elements to QueryList (Angular)将元素附加到 QueryList (Angular)
【发布时间】:2018-07-04 09:46:31
【问题描述】:

我正在尝试合并两个查询列表。问题是,我有几个 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-option,否则mat-select的滚动逻辑不能正常工作。

【问题讨论】:

    标签: angular angular-material angular-material2


    【解决方案1】:

    我不明白你为什么要这样做,但我会做的是 .changes 你得到 EventEmitter 并且你可以在那里订阅并获得价值。您也可以对其他查询列表执行此操作,然后将其组合起来。

    【讨论】:

    • 感谢您的回答。我会尝试一下,看看它是否有效。我编辑了我的问题,以便您更清楚我为什么要这样做。
    猜你喜欢
    • 2018-04-26
    • 1970-01-01
    • 2020-08-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-24
    • 1970-01-01
    • 2016-12-31
    相关资源
    最近更新 更多