Выпадающий список ng2-bootstrap не найден

В моем приложении angular возникла проблема с включением ng2-boostrap. Я постоянно получаю эту ошибку в консоли Chrome:

GET http://127.0.0.1:8000/ng/node_modules/ng2-bootstrap/dropdown.js 404 (Not Found)

Глядя на то, как модуль ng2-bootstrap хранится в моем каталоге, мне кажется, что вместо этого zone.js должна пытаться загрузить этот модуль:

http://127.0.0.1:8000/ng/node_modules/ng2-bootstrap/dropdown/dropdown.module.js

Вот мой импорт app.module.ts:

import { DropdownModule, TabsModule } from 'ng2-bootstrap';
/* Stuff */

И мой systemjs.config

    /**
 * System configuration for Angular samples
 * Adjust as necessary for your application needs.
 */
(function (global) {


var map = {
    'app':                        'app', // 'dist',
    '@angular':                   'npm:@angular',
    'angular2-in-memory-web-api': 'npm:angular2-in-memory-web-api',
    'rxjs':                       'npm:rxjs',
    // ng2-bootstrap
    'moment':                     'npm:moment',
    'ng2-bootstrap':              'npm:ng2-bootstrap',
    'ng2-charts':                 'npm:ng2-charts',
  };

  var packages = {
    'app':                        { main: './app/main.js',  defaultExtension: 'js' },
    'rxjs':                       { defaultExtension: 'js' },
    'angular2-in-memory-web-api': { main: 'index.js', defaultExtension: 'js' },
    // ng2-bootstrap
    'ng2-bootstrap':              { format: 'cjs', main: 'bundles/ng2-bootstrap.umd.js', defaultExtension: 'js' },
    'moment':                     { main: 'moment.js', defaultExtension: 'js' },
    'ng2-charts': {
        main: 'bundles/ng2-charts.umd.js',
        defaultExtension: 'js'
      }
  };
  var ngPackageNames = [
    'common',
    'compiler',
    'core',
    'forms',
    'http',
    'platform-browser',
    'platform-browser-dynamic',
    'router',
    'router-deprecated',
    'upgrade',
  ];

  // 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' };
  }
  // 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 = {
    paths: {
      // paths serve as alias
      'npm:': 'node_modules/'
    },
    baseURL: '/ng/',
    map: map,
    packages: packages
  };
  System.config(config);
})(this);

И мой package.json:

{
  "name": "angular-quickstart",
  "version": "1.0.0",
  "description": "QuickStart package.json from the documentation, supplemented with testing support",
  "scripts": {
    "start": "tsc && concurrently \"tsc -w\" \"lite-server\" ",
    "e2e": "tsc && concurrently \"http-server -s\" \"protractor protractor.config.js\" --kill-others --success first",
    "lint": "tslint ./app/**/*.ts -t verbose",
    "lite": "lite-server",
    "pree2e": "webdriver-manager update",
    "test": "tsc && concurrently \"tsc -w\" \"karma start karma.conf.js\"",
    "test-once": "tsc && karma start karma.conf.js --single-run",
    "tsc": "tsc",
    "tsc:w": "tsc -w"
  },
  "keywords": [],
  "author": "",
  "license": "MIT",
  "dependencies": {
    "@angular/common": "2.4.3",
    "@angular/compiler": "2.4.3",
    "@angular/core": "2.4.3",
    "@angular/forms": "2.4.3",
    "@angular/http": "2.4.3",
    "@angular/platform-browser": "2.4.3",
    "@angular/platform-browser-dynamic": "2.4.3",
    "@angular/router": "3.4.3",
    "@types/lodash": "4.14.50",
    "angular-calendar": "0.6.2",
    "angular-in-memory-web-api": "~0.2.4",
    "angular2-datatable": "0.5.2",
    "angular2-ladda": "^1.0.6",
    "angular2-moment": "^1.1.0",
    "angular2-toaster": "2.0.0",
    "chart.js": "^2.3.0",
    "core-js": "^2.4.0",
    "dragula": "^3.7.2",
    "moment": "2.17.1",
    "ng2-bootstrap": "^1.3.2",
    "ng2-charts": "^1.5.0",
    "ng2-dragula": "1.3.0",
    "ng2-select": "^1.2.0",
    "reflect-metadata": "0.1.9",
    "rxjs": "5.0.1",
    "systemjs": "0.19.40",
    "zone.js": "^0.7.4"
  },
  "devDependencies": {
    "concurrently": "^3.1.0",
    "lite-server": "^2.2.2",
    "typescript": "~2.0.10",
    "canonical-path": "0.0.2",
    "http-server": "^0.9.0",
    "tslint": "^3.15.1",
    "jasmine-core": "~2.4.1",
    "karma": "^1.3.0",
    "karma-chrome-launcher": "^2.0.0",
    "karma-cli": "^1.0.1",
    "karma-jasmine": "^1.0.2",
    "karma-jasmine-html-reporter": "^0.2.2",
    "protractor": "~4.0.14",
    "rimraf": "^2.5.4",
    "@types/node": "^6.0.46",
    "@types/jasmine": "^2.5.36"
  },
  "repository": {}
}

Вы знаете, почему не загружается раскрывающийся список ng2-bootstrap?


person Pierre-Luc Champigny    schedule 02.02.2017    source источник
comment
У меня была проблема с тем, что модуль не был найден после сборки приложения, и мне пришлось переключить мой импорт в файле app.ts, чтобы использовать конкретное место импорта, а не импортировать все из 'ng2-bootstrap' ... ergo `import { DropdownModule} из ng2-bootstrap / dropdown; Возможно связаны?   -  person silencedmessage    schedule 02.02.2017
comment
@silencedmessage попробовал, и это не сработало. Разместил свое решение ниже. Спасибо за уделенное время :)   -  person Pierre-Luc Champigny    schedule 03.02.2017


Ответы (1)


Я нашел проблему в своем решении. Мы интегрируем макет, и для некоторых компонентов импорт был записан как:

import { DropdownModule } from 'ng2-bootstrap/dropdown';

Поэтому мы изменили их на:

import { DropdownModule } from 'ng2-bootstrap';

И это действительно устранило проблемы!

person Pierre-Luc Champigny    schedule 03.02.2017