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

Angular使用ngFor填充下拉菜单仅显示第一条数据问题求助

问题根因

你错误地将*ngFor指令绑定在了<ul>标签上,这会导致每遍历数组中的一个元素,就生成一个完整的下拉菜单容器。而Bootstrap下拉组件的逻辑是仅展示第一个匹配.dropdown-menu的元素,所以你只能看到第一条数据,其余生成的<ul>会被默认隐藏不展示。如果把*ngFor绑定到更外层的标签上,自然会循环复制整个下拉组件结构。

解决方案

将*ngFor指令移动到需要循环生成的菜单项<li>标签上即可,修正后的模板代码如下:

<div class="dropdown">
  <button (click) = "dd()" class="btn btn-secondary dropdown-toggle" type="button" id="dropdownMenuButton1" data-bs-toggle="dropdown" aria-expanded="false">
    Select Doctor
  </button>
  <ul class="dropdown-menu" aria-labelledby="dropdownMenuButton1">
    <li *ngFor="let d of doctor"><a class="dropdown-item" href="#">{{d.name}}</a></li>
  </ul>
</div>

*ngFor指令的作用是循环生成绑定该指令的元素,你只需要循环生成下拉菜单项,不需要循环生成整个下拉菜单容器,调整后即可正常展示所有返回的医生数据。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 04:27:03