Angular 2 : ng bootstrap drop down not working for me

6.1k views Asked by At

I have been trying to implement ng-bootstrap drop down using plunker http://plnkr.co/edit/?p=preview.

Its not working, I am unable to find an issue

enter image description here.

Below system.config.js code,

/**
 * System configuration for Angular samples
 * Adjust as necessary for your application needs.
 */
(function (global) {
  System.config({
    paths: {
      // paths serve as alias
      'npm:': 'node_modules/'
    },
    // map tells the System loader where to look for things
    map: {
      // our app is within the app folder
      app: 'app',

      // angular bundles
      '@angular/core': 'npm:@angular/core/bundles/core.umd.js',
      '@angular/common': 'npm:@angular/common/bundles/common.umd.js',
      '@angular/compiler': 'npm:@angular/compiler/bundles/compiler.umd.js',
      '@angular/platform-browser': 'npm:@angular/platform-browser/bundles/platform-browser.umd.js',
      '@angular/platform-browser-dynamic': 'npm:@angular/platform-browser-dynamic/bundles/platform-browser-dynamic.umd.js',
      '@angular/http': 'npm:@angular/http/bundles/http.umd.js',
      '@angular/router': 'npm:@angular/router/bundles/router.umd.js',
      '@angular/forms': 'npm:@angular/forms/bundles/forms.umd.js',
      '@ng-bootstrap/ng-bootstrap': 'node_modules/@ng-bootstrap/ng-bootstrap/bundles/ng-bootstrap.js',
      // other libraries
      'rxjs':                      'npm:rxjs',
      'angular-in-memory-web-api': 'npm:angular-in-memory-web-api/bundles/in-memory-web-api.umd.js'
    },
    // packages tells the System loader how to load when no filename and/or no extension
    packages: {
      app: {
        main: './main.js',
        defaultExtension: 'js'
      },
      rxjs: {
        defaultExtension: 'js'
      },
      
    }
  });
})(this);

app.module.ts

import { NgModule }      from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { NgbdDropdownConfig } from 'app/dropdown-config';
import { AppComponent }  from './app.component';

@NgModule({
  imports:      [ BrowserModule, ],
  declarations: [ AppComponent,NgbdDropdownConfig ],
  bootstrap:    [ AppComponent ]
})
export class AppModule { }

app.component.ts code

import { Component } from '@angular/core';
import { NgbModule } from '@ng-bootstrap/ng-bootstrap';
import { NgbdDropdownConfig } from 'app/dropdown-config';
@Component({
  selector: 'my-app',
  template: ` <div class="container-fluid">
    
    <ngbd-dropdown-config></ngbd-dropdown-config>
  </div>`,
})
export class AppComponent  {  }

dropdown-config.ts code

import {Component} from '@angular/core';
import {NgbDropdownConfig} from '@ng-bootstrap/ng-bootstrap';

@Component({
  selector: 'ngbd-dropdown-config',
  templateUrl: 'app/dropdown-config.html',
  providers: [NgbDropdownConfig] // add NgbDropdownConfig to the component providers
})
export class NgbdDropdownConfig {
  constructor(config: NgbDropdownConfig) {
    // customize default values of dropdowns used by this component tree
    config.up = true;
    config.autoClose = false;
  }
}

dropdown-config.html

<p>This dropdown uses customized default values.</p>

<div ngbDropdown>
  <button class="btn btn-outline-primary" id="dropdownMenu3" ngbDropdownToggle>Toggle</button>
  <div class="dropdown-menu" aria-labelledby="dropdownMenu3">
    <button class="dropdown-item">Action - 1</button>
    <button class="dropdown-item">Another Action</button>
    <button class="dropdown-item">Something else is here</button>
  </div>
</div>

Since there is no error message , I am unable to find issue. Can any one find out what is the issue could be . Thanks.

3

There are 3 answers

0
mtonev On

With the latest version(1.0.0-alpha.18) it is not working with me either. Downgrade to the previous version:

npm i @ng-bootstrap/[email protected] --save

and should be fine.

0
Yuvraj Chauhan On

@Manjula D Just make below changes in dropdown-config.html

<div ngbDropdown>
  <button class="btn btn-outline-primary" id="dropdownMenu3" ngbDropdownToggle>Toggle</button>
  <div class="dropdown-menu" aria-labelledby="dropdownMenu3" ngbDropdownMenu>
    <button class="dropdown-item">Action - 1</button>
    <button class="dropdown-item">Another Action</button>
    <button class="dropdown-item">Something else is here</button>
  </div>
</div>

ngbDropdownMenu is property added to "dropdown-menu" div.

0
arod On

I had a similar problem:

I ran

npm install --save @ng-bootstrap/ng-bootstrap

npm install --save [email protected]

template/html is provided here: https://ng-bootstrap.github.io/#/components/dropdown/examples

In styles.css:

@import "~bootstrap/dist/css/bootstrap.css";

Still things didn't work by this point so I re-ran

npm install

and things worked.