静态解析符号值时遇到错误-无法生成Angular 2应用程序

静态解析符号值时遇到错误-无法生成Angular 2应用程序,angular,angular-cli,Angular,Angular Cli,运行ng serve命令时,出现以下错误: 静态解析符号值时遇到错误。 不支持函数调用。考虑替换函数或 引用导出函数位置42:45的lambda origi nal.ts文件,解析中的符号AppModule C:/myapp/src/app/app.module.ts 这是我的app.module.ts 它抱怨的是: {提供:APP_初始值设定项,使用工厂:配置:AppConfig=>=> config.load,deps:[AppConfig],multi:true} 这是我的app.conf

运行ng serve命令时,出现以下错误:

静态解析符号值时遇到错误。 不支持函数调用。考虑替换函数或 引用导出函数位置42:45的lambda origi nal.ts文件,解析中的符号AppModule C:/myapp/src/app/app.module.ts

这是我的app.module.ts

它抱怨的是:

{提供:APP_初始值设定项,使用工厂:配置:AppConfig=>=> config.load,deps:[AppConfig],multi:true}

这是我的app.config.ts AppConfig类:

import { Inject, Injectable } from '@angular/core';
import { Http } from '@angular/http';
import { Observable } from 'rxjs/Rx';

@Injectable()
export class AppConfig {

    private config: Object = null;

    constructor(private http: Http) { }

    public get(key: any) {
        return this.config[key];
    }

    public load() {
        return new Promise((resolve, reject) => {
            this.http.get('config.json').map( res => res.json() ).catch((error: any):any => {
                console.log('Configuration file "config.json" could not be read');
                resolve(true);
                return Observable.throw(error.json().error || 'Internal Server Srror');
            }).subscribe( (responseData: Object) => {
                this.config = responseData;
                resolve(true);
            });
        });
    }
}
以下是我的工具版本:

angular-cli: 1.0.0-beta.28.3
node: 7.7.2
os: win32 x64
@angular/common: 2.4.9
@angular/compiler: 2.4.9
@angular/core: 2.4.9
@angular/forms: 2.4.9
@angular/http: 2.4.9
@angular/platform-browser: 2.4.9
@angular/platform-browser-dynamic: 2.4.9
@angular/router: 3.4.9
@angular/compiler-cli: 2.4.9
我正在Visual Studio代码中编辑代码,并在嵌入式控制台中运行ng serve命令。有什么想法吗?

多亏了这个答案

我是这样修理的:

export function appConfigFactory(config: AppConfig) {
  return () => config.load();
}

@NgModule({
  declarations: [
    ...
  ],
  imports: [
    ...
  ],
  providers: [
    AppConfig,
    { provide: APP_INITIALIZER, useFactory: appConfigFactory, deps: [AppConfig], multi: true }
  ],
  bootstrap: [AppComponent]
})
export class AppModule { }
export function appConfigFactory(config: AppConfig) {
  return () => config.load();
}

@NgModule({
  declarations: [
    ...
  ],
  imports: [
    ...
  ],
  providers: [
    AppConfig,
    { provide: APP_INITIALIZER, useFactory: appConfigFactory, deps: [AppConfig], multi: true }
  ],
  bootstrap: [AppComponent]
})
export class AppModule { }