【问题标题】:Angular2 + ng-bootstrap ExampleAngular2 + ng-bootstrap 示例
【发布时间】:2017-01-08 21:42:11
【问题描述】:

我开始学习 Angular2,我想在我的项目中使用 ng-bootstrap。但是,我无法制作一个工作项目。导入 ng-bootstrap 失败。由于我是初学者,我不知道问题是因为代码还是我犯的其他错误。

您能否为我提供一个使用 ng-bootstrap 和 Angular2 的简单项目,以便我可以尝试使其在我的计算机上运行?

编辑:

app.module.ts:

import { NgModule }      from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import {NgbModule} from '@ng-bootstrap/ng-bootstrap';
import { AppComponent }  from './app.component';
import { NgbdAlertCloseable } from './ngbd-alert-closeable.component';


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

systemjs.config.js:

/**
 * System configuration for Angular 2 samples
 * Adjust as necessary for your application needs.
 */
(function(global) {
  // map tells the System loader where to look for things
  var map = {
    'app':                        'app', // 'dist',
    '@angular':                   'node_modules/@angular',
    'angular2-in-memory-web-api': 'node_modules/angular2-in-memory-web-api',
    'rxjs':                       'node_modules/rxjs',
    '@ng-bootstrap':          'node_modules/@ng-bootstrap'
  };
  // packages tells the System loader how to load when no filename and/or no extension
  var packages = {
    'app':                        { main: 'main.js',  defaultExtension: 'js' },
    'rxjs':                       { defaultExtension: 'js' },
    'angular2-in-memory-web-api': { main: 'index.js', defaultExtension: 'js' },
    'ng-bootstrap':       { main: 'index.js', defaultExtension: 'js' }
  };
  var ngPackageNames = [
    'common',
    'compiler',
    'core',
    'forms',
    'http',
    'platform-browser',
    'platform-browser-dynamic',
    'router',
    'router-deprecated',
    'upgrade',
  ];

  var ngBootstrapPackageNames = [
    'accordion',
    'alert',
    'bundles',
    'buttons',
    'carousel',
    'collapse',
    'dropdown',
    'esm',
    'modal',
    'pagination',
    'popover',
    'progressbar',
    'rating',
    'tabset',
    'timepicker',
    'tooltip',
    'typeahead',
    'util'
  ];

  // Individual files (~300 requests):
  function packIndex(pkgName) {
    packages['@angular/'+pkgName] = { main: 'index.js', defaultExtension: 'js' };
  }
  // Bundled (~40 requests):
  function packUmd(pkgName) {
    packages['@angular/'+pkgName] = { main: 'bundles/' + pkgName + '.umd.js', defaultExtension: 'js' };
  }
  function ngBootstrapPackIndex(pkgName) {
    packages['@ng-bootstrap/ng-bootstrap/' + pkgName] = {main: 'index.js', defaultExtension: 'js'};
  }
ngBootstrapPackageNames.forEach(ngBootstrapPackIndex);
  // Most environments should use UMD; some (Karma) need the individual index files
  var setPackageConfig = System.packageWithIndex ? packIndex : packUmd;
  // Add package entries for angular packages
  ngPackageNames.forEach(setPackageConfig);
  var config = {
    map: map,
    packages: packages
  };
  System.config(config);
})(this);

错误:

【问题讨论】:

  • 您说导入 ng-bootstarp 失败,您具体是如何导入的,错误信息是什么?
  • 我编辑了这个问题。我添加了 app.module.ts 文件和错误消息。当我将 NgbModule 添加到“导入”时,它会给出错误。

标签: javascript twitter-bootstrap angular ng-bootstrap


【解决方案1】:

我改了

'ng-bootstrap':       { main: 'index.js', defaultExtension: 'js' } 

systemjs.config.js 中的一行

'@ng-bootstrap/ng-bootstrap':         { main: 'index.js', defaultExtension: 'js' }

它成功了!

【讨论】:

  • 我找不到 systemjs.config.js 文件
  • 如果您使用 angular-cli,则不会有 systemjs.config.js 文件。另外,我不知道它是否还在新版本的 Angular 中使用。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-02-04
  • 1970-01-01
  • 1970-01-01
  • 2016-10-21
  • 2017-03-17
相关资源
最近更新 更多