Angular 2:ng bootstrap下拉不适用于我

时间:2017-01-07 11:10:47

标签: javascript angular ng2-bootstrap

我一直在尝试使用plunker http://plnkr.co/edit/?p=preview实现ng-bootstrap下拉。

它不起作用,我无法找到问题

enter image description here

在system.config.js代码下面,

/**
 * 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代码

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代码

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>

由于没有错误消息,我无法找到问题。任何人都可以找出问题所在。感谢。

3 个答案:

答案 0 :(得分:4)

使用最新版本(1.0.0-alpha.18)时,它也无法与我合作。降级到以前的版本:

npm i @ng-bootstrap/ng-bootstrap@1.0.0-alpha.17 --save

应该没问题。

答案 1 :(得分:0)

@Manjula D. 只需在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 是添加到“dropdown-menu”div的属性。

答案 2 :(得分:0)

我遇到了类似的问题:

我跑了

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

npm install --save bootstrap@4.0.0-beta.2

模板/ html在这里提供: https://ng-bootstrap.github.io/#/components/dropdown/examples

在styles.css中:

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

到目前为止,事情还没有成功,所以我重新开始了

npm install

并且事情有效。