html - 为什么单击的项目没有在下拉列表中被选中,而是始终显示标题文本

标签 html angular typescript twitter-bootstrap

我的下拉菜单总是显示标题文本Select Location即使 click 不显示所选项目事件工作。
这是.html file

<div ngbDropdown class="d-inline-block">
 <button class="btn btn-secondary btn-sm dropdown-toggle" id="dropdownMap" ngbDropdownToggle>Select Location</button>                
   <div ngbDrop4downMenu aria-labelledby="dropdownMap">

    <button class="dropdown-item" *ngFor="let country of countries" 
    (click)="mapCountry_selected(country)" >{{country}}</button>      
 </div>

</div>
代码在 .ts file
public mapCountry_selected(country)
 {
   var c=country;
 }

最佳答案

为了显示所选项目的国家/地区,您必须伪造您正在显示的标签。
你可以有一个变量selectedCountry这将显示所选国家或默认值“选择位置”
模板

<div ngbDropdown class="d-inline-block">
 <button class="btn btn-secondary btn-sm dropdown-toggle" id="dropdownMap" ngbDropdownToggle>{{selectedCountry}}</button>                
   <div ngbDrop4downMenu aria-labelledby="dropdownMap">

    <button class="dropdown-item" *ngFor="let country of countries" (click)="mapCountry_selected(country)" >{{country}}</button>      
 </div>

</div>
和 .ts 代码
  countries = ["Country 1", "Country 2", "Country 3"];
  selectedCountry = 'Select Location'

  mapCountry_selected(country) {
    this.selectedCountry = country
  }

关于html - 为什么单击的项目没有在下拉列表中被选中,而是始终显示标题文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62956596/

相关文章:

Angular : Service Injection vs Typescript Static Methods

javascript - 当我尝试将 vis.js 与 Svelte 结合使用时,出现意外标记 'export'

javascript - 通过 JQuery Ajax 从 http url 下载文件

css - 为什么我的 div 不对齐?

javascript - 如何检查 jQuery 的 FIND 结果

jquery - 如何使用 Django 使用 css 加载图像

javascript - 从 AngularJS 开始还是从 Angular 2 开始?

css - 将动态样式应用于 Angular 2 中注入(inject)的 HTML

node.js - 将服务器错误消息传递给客户端(使用 Express 和 Backbone)

reactjs - 如何在样式组件中使用 Typescript 自定义 Prop