我正在学习https://bbacademy.learnupon.com/上的Backbase Frontend Essentials课程-任务是使用RAML生成数据模块(已提供RAML)。我按照教程下载了提供的RAML,但是当我在浏览器中查看时,我的终端显示以下错误:
ERROR in libs/exchange-rate-data/src/exchange-rate-data.service.ts(5,33): error TS2305: Module '"../../../node_modules/@backbase/foundation-ang/data-http/backbase-foundation-ang-data-http"' has no exported member 'HTTP_PARAMS_FACTORY'.
libs/exchange-rate-data/src/exchange-rate-data.service.ts(5,54): error TS2305: Module '"../../../node_modules/@backbase/foundation-ang/data-http/backbase-foundation-ang-data-http"' has no exported member 'HttpParamsFactory'.
我没有触摸过此文件。这是我尝试过的:
npm install
和npm update
更新/ node模块../../../node_modules/@backbase/foundation-ang/data-http/backbase-foundation-ang-data-http
,并确定没有找到HTTP_PARAMS_FACTORY
或HttpParamsFactory
HTTP_PARAMS_FACTORY
和HttpParamsFactory
的Backbase文档以及它是foundation-ang / data-http API的一部分。我是不熟悉Backbase的人,并且认为此错误来自于本教程中给出的代码,但我不确定。任何帮助,将不胜感激。
答案 0 :(得分:1)
我已经解决了该问题,但不确定以下所有内容是否都可以解决此问题100%。这是我所做的: 教程说要在版本4.25上安装@ backbase / foundation-ang,但是该版本没有HttpParamsFactory类型别名或HTTP_PARAMS_FACTORY常量,在教程中提供的已下载Raml规范中都引用了该常量。我切换到@ backbase / foundation-ang版本4.33.0。我还通过导入HttpClientModule(讲师有,但默认情况下没有)来从提供的RAML中修改了模块文件,然后修改了提供程序的数组。因此,我现在的最终exchange-rate-data.module.ts文件如下所示:
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { InjectionToken, ModuleWithProviders, Optional } from "@angular/core";
import { HttpClientModule } from "@angular/common/http";
import { createServiceDataHttpConfig, DATA_HTTP_CONFIG, DataHttpModule, ServiceDataHttpConfig } from "@backbase/foundation-ang/data-http";
import { EXCHANGE_RATE_DATA_CONFIG, ExchangeRateDataService } from "./exchange-rate-data.service";
export const CONFIG_VALUE = new InjectionToken("ExchangeRateData Data Service :: Custom Http Config");
// export function createExchangeRateDataServiceDataHttpConfig(globalConfig: ServiceDataHttpConfig, serviceConfig?: Partial<ServiceDataHttpConfig>) {
// return createServiceDataHttpConfig(globalConfig, serviceConfig ? serviceConfig : { "servicePath": "" });
// }
@NgModule({
declarations: [],
imports: [
CommonModule,
DataHttpModule,
HttpClientModule
],
providers: [ExchangeRateDataService, {provide: CONFIG_VALUE, useValue: {
servicePath: '',
}}, {
provide: EXCHANGE_RATE_DATA_CONFIG,
useFactory: createServiceDataHttpConfig,
deps: [DATA_HTTP_CONFIG, CONFIG_VALUE],
}]
})