Angular - 导入模块导致lambda错误

时间:2017-08-15 07:17:34

标签: angular typescript

我正在编写一个库,除了将库与实际应用程序集成之外,我还有一些工作要做。我得到一个lambda错误,但我无法弄清楚为什么会发生这种情况。

这是错误:

  

ERROR in Error遇到静态解析符号值。不支持函数调用。考虑使用对导出函数的引用替换函数或lambda(原始.ts文件中的位置194:50),在//ng/lib-ng/node_modules/@angular/core/core.d.ts中解析符号NgModule ,解析//ng/lib-ng/dist/modules/components.module.d.ts中的符号组件,解析//ng/lib-ng/dist/modules/components.module.d.ts中的符号组件

这是抛出它的模块:

providers.ts

export const COMPONENTS_PROVIDERS: any[] = [
  BreadcrumbsUtils,
  ModalApi,
  NotificationsApi,
  SiteHeaderApi
];

components.module.ts

import {COMPONENTS_PROVIDERS} from '../components/providers';

@NgModule({
  imports: [
    BreadcrumbsModule,
    CheckboxModule,
    CheckboxesModule,
    DataListModule,
    DropdownModule,
    DropdownSelectModule,
    FileUploaderModule,
    ModalModule,
    NotificationsModule,
    SearchInputModule,
    SelectModule,
    SelectMultipleModule,
    SiteFooterModule,
    SiteHeaderModule,
    SwitchModule
  ],
  exports: [
    BreadcrumbsModule,
    CheckboxModule,
    CheckboxesModule,
    DataListModule,
    DropdownModule,
    DropdownSelectModule,
    FileUploaderModule,
    ModalModule,
    NotificationsModule,
    SearchInputModule,
    SelectModule,
    SelectMultipleModule,
    SiteFooterModule,
    SiteHeaderModule,
    SwitchModule
  ]
})

export class Components {

  public static forRoot() {

    return {
      ngModule: Components,
      providers: COMPONENTS_PROVIDERS
    };
  }
}

用于测试lib的AppModule

import {Components} from '../../lib-ng';

@NgModule({
  imports: [

    // Throws error
    Components.forRoot()

    // Importing it without calling forRoot throws the same error
    Components
  ],
  declarations: [
    AppComponent
  ],
  schemas: [
    NO_ERRORS_SCHEMA
  ],
  bootstrap: [
    AppComponent
  ]
})

export class AppModule {}

为什么我收到此错误?

0 个答案:

没有答案