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

使用Angular CDK Listbox创建列表却无法选择的问题排查

问题原因及修复方案

你的代码存在两个核心问题导致选项无法被选中:

  • cdkOption绑定语法错误
    你使用了cdkOption="tag.text",这会将字符串"tag.text"作为所有选项的固定值,而非绑定到循环变量tag.text。Angular中绑定组件属性到变量必须使用方括号语法,修改后:

    <li *ngFor="let tag of tags" [cdkOption]="tag.text">
      {{tag.text}}
    </li>
    
  • 缺失无障碍访问标签(可选但推荐)
    官网示例通过aria-labelledby关联标签,这是无障碍访问的最佳实践,也能保证组件行为更符合规范。你可以补充该属性:

    <label id="tag-list-label">选择标签</label>
    <ul cdkListbox
        cdkListboxMultiple
        (cdkListboxValueChange)="onSelect($event)"
        [cdkListboxDisabled]="false"
        aria-labelledby="tag-list-label"
        >
      <li *ngFor="let tag of tags" [cdkOption]="tag.text">
        {{tag.text}}
      </li>
    </ul>
    

同时请确认组件类中已正确定义tags数组和onSelect方法,确保数据正常传递:

tags = [{text: '标签1'}, {text: '标签2'}, {text: '标签3'}];

onSelect(event: any) {
  console.log('选中项:', event.value);
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 16:32:35