首页 > 解决方案 > 无法在服务中加载配置文件 - 供应商 js 65401

问题描述

在此处输入图像描述

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

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

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`);
        });
    });
}

}

在 app 模块中提供 app 初始化器:

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


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

与应用服务集成时出现错误。无法加载配置文件。但它适用于组件。

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);
    }

参考链接:参考网址

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

标签: angularangular7angular8angular-servicesangular9

解决方案



推荐阅读