使用Angular2加载config.json:获取错误:NoProviderError.ZoneAwareError上的DI错误

时间:2017-03-31 20:35:33

标签: angular

根据一些帖子,我想在我的angular2 app中加载config.json文件,但在前端得到了上面的错误。

这就是我所做的:

应用\ app.module.ts

import { ConfigService } from './service/config-service';


@NgModule({
  providers: [ 
    { provide: APP_INITIALIZER, useFactory: (config: ConfigService) => () => config.load(), deps: [ConfigService], multi: true }
 ]
})

应用\服务\配置-service.ts

import { Injectable } from '@angular/core';
import { Http } from '@angular/http';
import { Observable } from 'rxjs/Rx';
import 'rxjs/add/operator/map';

@Injectable()
export class ConfigService {
    private _config: Object;

    constructor(private http: Http) {
        console.log("Config Created");
    }

    load() {
        // Get the Config
        return new Promise(function(fulfill, reject) {
            // Get the conf
            this.http.get('/app/config.json')  // path of your config.json file
            .map(res => res.json())
            .subscribe(config => {
              this._config = config;
              fulfill(true);
            });
        });
    }

    getCentralSystemServer() {
        return this._config["CentralSystemServer"];
    }
}

如果您遇到同样的问题,请告诉我。

谢谢, 哔叽。

1 个答案:

答案 0 :(得分:1)

因为您没有在供应商数组

下配置您的服务
providers: [ ConfigService,////////////////change/////////////////////////////
    { provide: APP_INITIALIZER, useFactory: (config: ConfigService) => () => config.load(), deps: [ConfigService], multi: true }
 ]