无法在服务中加载配置文件-供应商js 65401 [英] Could not load the config file in service - vendor js 65401

查看:42
本文介绍了无法在服务中加载配置文件-供应商js 65401的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在注入组件时效果很好.服务注入中出现问题.

我正在为端点使用运行时配置.它可以在组件中工作.我可以在运行时进行更改,但是在向全局注入其他服务时会抛出错误

 导出类AppConfigService {静态设置:IAppConfig;构造函数(私有http:HttpClient){}加载() {const jsonFile =`../assets/config/config.json`;返回新的Promise< void>((解决,拒绝)=> {this.http.get(jsonFile).toPromise().then((response:IAppConfig)=> {AppConfigService.settings =< IAppConfig>响应;console.log('Config Loaded');console.log(AppConfigService.settings);解决();}).catch((response:any)=> {reject(`无法加载配置文件`);});});} 

}

在应用程序模块中提供应用程序初始化符:

 提供者:[AppConfigService,{提供:APP_INITIALIZER,useFactory:initializeApp,deps:[AppConfigService],multi:true},导出函数initializeApp(appConfigService:AppConfigService){return():Promise< any>=>{返回appConfigService.load();}} 

与应用程序服务集成时出现错误.无法加载配置文件.但是它可以在组件中工作.

身份验证服务从"app/app-config.service"导入{AppConfigService};

  @Injectable({providerIn:'root'})导出类AuthService {apiServer = AppConfigService.settings.apiServer;构造函数(私有httpClient:HttpClient){console.log(this.apiServer.link1);} 

参考链接:参考网址

App.settings-角度方式?在Angular 6中加载配置文件在Angular 2中加载配置JSON文件

解决方案

我为您添加了一个示例:

https://stackblitz.com/edit/angular-pkuwef?file=src/app/app.module.ts

https://github.com/misanche/angular-pkuwef/

It works fine in injecting into components. problem occurs in service injection.

I am using runtime configuration for end points.it works in components.i can able to change in runtime but throws an error when injecting in other services global

export class AppConfigService {
    static settings: IAppConfig;
constructor(private http: HttpClient) {}
load() {

    const jsonFile = `../assets/config/config.json`;
    return new Promise<void>((resolve, reject) => {
        this.http.get(jsonFile).toPromise().then((response : IAppConfig) => {
           AppConfigService.settings = <IAppConfig>response;
           console.log('Config Loaded');
           console.log( AppConfigService.settings);
           resolve();
           
        }).catch((response: any) => {
           reject(`Could not load the config file`);
        });
    });
}

}

in the app module provide app intializers:

providers: [
    AppConfigService,
    { provide: APP_INITIALIZER,useFactory: initializeApp, deps: [AppConfigService], multi: true},


export function initializeApp(appConfigService: AppConfigService) {
  return (): Promise<any> => { 
    return appConfigService.load();
  }
}

when integrate with app service have the error. could not load the config file. But it works in a component.

auth.service import { AppConfigService } from 'app/app-config.service';

@Injectable({
  providedIn: 'root'
})
export class AuthService {

   apiServer = AppConfigService.settings.apiServer;

  constructor(private httpClient: HttpClient) { 

      console.log(this.apiServer.link1);
    }

Reference link :reference url

App.settings - the Angular way? Loading configuration files in Angular 6 Load Config JSON File In Angular 2

解决方案

Hi I have added you an example:

https://stackblitz.com/edit/angular-pkuwef?file=src/app/app.module.ts

https://github.com/misanche/angular-pkuwef/

这篇关于无法在服务中加载配置文件-供应商js 65401的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆