You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在ngx-mat-select-search的全选复选框旁添加自定义文本?

实现方案

方案1:自定义全选模板(最推荐,支持动态文本、样式完全可控)

ngx-mat-select-search 本身支持通过内置的模板指令自定义全选区域内容,无需修改源码,直接替换默认的全选复选框结构即可:

  • 在<ngx-mat-select-search>标签内部插入ngxMatSelectSearchSelectAllTemplate自定义模板
  • 模板上下文已内置全选切换方法、选中状态、半选状态可直接调用,你可以在复选框内任意添加需要的文本、样式
    代码示例:
<mat-select [formControl]="yourControl" placeholder="选择项">
  <ngx-mat-select-search [formControl]="yourFilterControl" [showToggleAll]="true">
    <!-- 自定义全选区域模板 -->
    <ng-template 
      ngxMatSelectSearchSelectAllTemplate 
      let-toggleAll="toggleAll" 
      let-isIndeterminate="indeterminate" 
      let-isAllSelected="selected"
    >
      <mat-checkbox 
        [checked]="isAllSelected" 
        [indeterminate]="isIndeterminate"
        (change)="toggleAll($event.checked)"
      >
        全选
        <!-- 这里添加你需要的自定义文本,可绑定动态变量、自定义样式 -->
        <span style="margin-left: 8px; color: #999; font-size: 12px;">你要添加的指定文本</span>
      </mat-checkbox>
    </ng-template>
  </ngx-mat-select-search>

  <mat-option *ngFor="let item of filteredList | async" [value]="item">
    {{ item.name }}
  </mat-option>
</mat-select>

方案2:CSS伪元素注入文本(适合静态文本的轻量场景)

如果只需要添加静态文本,不想改动HTML结构,可以通过CSS样式直接注入内容:

  • 如果组件开启了视图封装(默认Emulated模式),需要加::ng-deep穿透样式,或者将样式写入全局样式文件
    代码示例:
/* 全选标签容器布局调整 */
::ng-deep .ngx-mat-select-search-select-all .mat-checkbox-label {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}
/* 注入自定义文本 */
::ng-deep .ngx-mat-select-search-select-all .mat-checkbox-label::after {
  content: "你要添加的指定文本";
  font-size: 12px;
  color: #666;
}

注意:该方案依赖ngx-mat-select-search的内部类名,若后续依赖包升级改动了类名可能导致样式失效,优先推荐方案1。

内容的提问来源于stack exchange,提问作者RoyBarOn

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 13:57:01