首页 > 解决方案 > 错误没有导出成员“HTTP_PARAMS_FACTORY”

问题描述

我正在学习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'.

我没有碰过这个文件。这是我尝试过的:

  1. 检查我的节点版本 - 我在 v10.18.1 上(认为可能是旧版本是罪魁祸首),我的角度版本是 8。
  2. 运行npm installnpm update更新 /node 模块
  3. 我检查了../../../node_modules/@backbase/foundation-ang/data-http/backbase-foundation-ang-data-http,果然没有找到HTTP_PARAMS_FACTORY也没有HttpParamsFactory
  4. 检查 Backbase 文档HTTP_PARAMS_FACTORYHttpParamsFactory它的基础-ang/data-http API 的一部分。

我是后台新手,我认为这个错误来自我在教程中给出的代码,但我不确定。任何帮助,将不胜感激。

标签: backbasebackbase-portal

解决方案


我已经解决了这个问题,但不能 100% 确定以下所有内容是否都已解决。这就是我所做的:教程说要在版本 4.25 上安装 @backbase/foundation-ang,但该版本没有 HttpParamsFactory 类型别名,也没有 HTTP_PARAMS_FACTORY const,它们都在教程中给出的下载的 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],
        }]
})


推荐阅读