Неожиданное значение «неопределенное», импортированное ошибкой модуля «AppModule» в ngModule?

Я использую ngModule для группировки импорта и других зависимостей. Я использую сетку ag в качестве сетки данных. Ниже мой app.module.ts -

import { NgModule }      from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import {SecurityContextService} from './securitycontext.service';
import { AppComponent }  from './app.component';
import { HttpModule } from '@angular/http';
import {AgGridModule} from 'ag-grid-ng2/main';
import {HeaderComponent} from './app.header';
@NgModule({
  imports: [ BrowserModule,HttpModule,AgGridModule],
  declarations: [ AppComponent,HeaderComponent],
  providers: [  SecurityContextService],
  bootstrap:    [ AppComponent ]
})
export class AppModule { }

Я получаю ниже упомянутое исключение.

Неожиданное значение «неопределенное», импортированное модулем «AppModule».

Ниже приведена трассировка стека для исключения:

Ошибка: Ошибка: Неожиданное значение «не определено», импортированное модулем «AppModule» в новом BaseException (http://localhost:8000/lib/@angular/compiler/src/facade/exceptions.js:27:23) в eval (http://localhost:8000/lib/@angular/compiler/src/metadata_resolver.js:255:31) в Array.forEach (собственный) в CompileMetadataResolver.getNgModuleMetadata (http://localhost:8000/lib/@angular/compiler/src/metadata_resolver.js:239:44) в RuntimeCompiler._compileComponents (http://localhost:8000/lib/@angular/compiler/src/runtime_compiler.js:150:47) в RuntimeCompiler._compileModuleA ndComponents (http://localhost:8000/lib/@angular/compiler/src/runtime_compiler.js:72:37) в RuntimeCompiler.compileModuleAsync (http://localhost:8000/lib/@angular/compiler/src/runtime_compiler.js:49:21) в PlatformRef_._bootstrapModuleWithZone (http://localhost:8000/lib/@angular/core/src/application_ref.js:368:25) в PlatformRef_.bootstrapModule (http://localhost:8000/lib/@angular/core/src/application_ref.js:361:21) при выполнении (http://localhost:8000/app/main.js:16):65) Ошибка загрузки http://localhost:8000/app/main.js

Примечание. Я получаю это исключение, только когда использую AgGridModule в своем импорте.

Я использую gulp для создания своего приложения.

ИЗМЕНИТЬ

Ниже Systemjs.config -

// map tells the System loader where to look for things
var map = {
    'app': 'app', // 'dist',
    'rxjs': 'lib/rxjs',
    '@angular': 'lib/@angular',
    'ag-grid-ng2': 'lib/ag-grid-ng2',
    'ag-grid-enterprise': 'lib/ag-grid-enterprise',
    'ag-grid': 'lib/ag-grid',
     '@angular/router':  'lib/@angular/router',
     'angular2-in-memory-web-api': 'lib/angular2-in-memory-web-api',
};

// 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'},
     'ag-grid-ng2': {
        defaultExtension: "js"
    },
    'ag-grid': {
        defaultExtension: "js"
    },
    'ag-grid-enterprise': {
        defaultExtension: "js"
    },
    'angular2-in-memory-web-api': {
                main: './index.js',
                defaultExtension: 'js'
            },
};

var packageNames = [
    '@angular/common',
    '@angular/compiler',
    '@angular/core',
    '@angular/http',
    '@angular/platform-browser',
    '@angular/platform-browser-dynamic',
    '@angular/router',
    '@angular/router-deprecated',
    '@angular/testing',
    '@angular/upgrade',
    '@angular/forms'
];

// add package entries for angular packages in the form '@angular/common': { main: 'index.js', defaultExtension: 'js' }
packageNames.forEach(function (pkgName) {
    packages[pkgName] = {main: 'index.js', defaultExtension: 'js'};
});

var config = {
    map: map,
    packages: packages
};

// filterSystemConfig - index.html's chance to modify config before we register it.
if (global.filterSystemConfig) {
    global.filterSystemConfig(config);
}

System.config(config);

person Akash    schedule 13.09.2016    source источник
comment
вы используете angular-cli для сборки или свою собственную систему сборки? Можете ли вы добавить свою конфигурацию systemjs   -  person Madhu Ranjan    schedule 13.09.2016
comment
Спасибо за оперативность Мадху. Я обновил детали конфигурации systemjs.   -  person Akash    schedule 13.09.2016
comment
Посмотрите мой ответ на этот пост: http://stackoverflow.com/questions/39265561/error-unexpected-value-undefined-imported-by-the-module/42088538#42088538   -  person Michael Baarz    schedule 07.02.2017


Ответы (1)


Я не совсем уверен, что это решит вашу проблему, но если вы используете ng2 с ag-grid, вам нужно подключить AgGridModule следующим образом:

@NgModule({
imports: [
    BrowserModule,
    AgGridModule.forRoot(),
    ...
})

Бит forRoot присутствует, так что клиентам не нужно объявлять модуль на корневом уровне.

person Sean Landsman    schedule 20.09.2016