Angular2从配置文件中读取

时间:2016-03-14 15:23:47

标签: angular

我正在创建一个新的angular2应用程序,该应用程序将在我们所有服务器上的所有应用程序上命中端点以获取内部版本号,然后它将在网格中显示它们以便我们可以看到哪些服务器具有哪个建立数字。

当我使用Angular1构建类似的应用程序时,我能够使用gulp-ng-config读取JSON文件并使用JSON中的值输出角度模块。我想在Angular2中做类似的事情,但我不知道如何做到这一点。有任何想法吗?

3 个答案:

答案 0 :(得分:5)

这样您就可以阅读.json中的Angular2文件了 注意 :这样您就可以阅读.json文件。此演示显示了.json文件示例。

working demo =>点击friends tab

http.get('friends.json (=filepath)')
    .map(res => res.json())
    .subscribe((data) => {  this.result=data; },
                            err=>console.log(err),
                            ()=>console.log('done')
               );

答案 1 :(得分:4)

在Angular2发行版2.1.0.0中读取配置文件的最佳方法是,您的服务将如下所示

    @Injectable()
        export class ConfigService {
          private Server:string = "";
          private AppKey = "";
          constructor(private _http:Http) {
          }
          public load() {
            return new Promise((resolve, reject) => {
              this._http.get('config.json')  // path of your config.json file
                .map(res => res.json())
                .subscribe(
                  (data:any) => {
                    this.Server = data.server;
                    this.AppKey = data.appkey;
                    resolve(true);
                  },
                  err=>console.log(err)
                );
            });
          }

      public getServer(){
           return  this.Server;
        }

    public getAppKey(){
           return  this.AppKey;
        }
  }

您必须加载此配置app.module.ts,如

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


  ],
  bootstrap: [AppComponent]
})
export class AppModule {
}

答案 2 :(得分:-2)

正常 $ http 调用配置文件应该满足您的要求。

$http.get('path-to-configuration-file')
   .success(function (confData) {
     // Use your conf data however you like
   })
   .error(function () {
      // File not found
   });

我希望这有效