angular - NgbDropdown 点击事件不起作用

标签 angular ng-bootstrap angular-bootstrap

我知道我错过了一些小东西,但不得不问,因为这不起作用。按钮的单击事件未触发。我从 documentation 开始然后移动here将此复制到我的其中一页中。当我添加 NgbdDropdownBasic 模块时,它会崩溃。如果我不添加它们,CSS 和按钮会正确渲染,但单击事件不会触发。不确定我一路上错过了什么?

import {Component} from '@angular/core';

@Component({
selector: 'dropdown-demo-sortby',
template: `
<div ngbDropdown class="d-inline-block">
  <button class="btn btn-outline-primary" id="sortMenu" ngbDropdownToggle>
   {{selectedSortOrder}}</button>
  <div class="dropdown-menu" aria-labelledby="sortMenu">
    <button class="dropdown-item" *ngFor="let sortOrder of sortOrders" 
    (click)="ChangeSortOrder(sortOrder)" >{{sortOrder}}</button>
   </div>
  </div>
 `
 })
 export class DropdownDemoSortby {

 sortOrders: string[] = ["Year", "Title", "Author"];
 selectedSortOrder: string = "Sort by...";

  ChangeSortOrder(newSortOrder: string) { 
  this.selectedSortOrder = newSortOrder;
 }

}

我在我的应用程序模块中导入了 NgbModule.forRoot() 。然后在我的组件中添加了

从'@ng-bootstrap/ng-bootstrap'导入{NgbModule}; import { NgbdDropdownBasic } from './dropdown-basic'; <--出现编译错误

最佳答案

你缺少一个

ngbDropdownMenu

标签在你的内部div中。应该是:

<div ngbDropdown class="d-inline-block">
  <button class="btn btn-outline-primary" id="sortMenu" ngbDropdownToggle>
   {{selectedSortOrder}}</button>
  <!-- Missing tag added below -->
  <div class="dropdown-menu" aria-labelledby="sortMenu" ngbDropdownMenu>
    <button class="dropdown-item" 
            *ngFor="let sortOrder of sortOrders" 
             (click)="ChangeSortOrder(sortOrder)">{{sortOrder}}
    </button>
  </div>
</div>

关于angular - NgbDropdown 点击事件不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47423705/

相关文章:

angular - ngb-datepicker 如何获取所选日期的周数

javascript - 在 Angular Bootstrap Modal 和父 Controller 之间共享范围

Angular2 innerHtml 绑定(bind)删除样式属性

angular - Ionic 3 值绑定(bind)地理定位

angular - 我应该如何使用formControlName而不是[(ngmodel)]初始化ngbDatepicker

javascript - 对 templateURL 使用部分时不显示 AngularJS 模态

angularjs - Angular bootstrap typeahead 不适用于 Angular 1.3.0

angular - 更新 Firestore 中所有文档中的映射字段

angular - 将 Openlayers ES2015 模块导入到 angular-cli 项目中

html - 使轮播的高度与图像的高度相同,忽略图像的边距