我有一个项目,我将使用大量的虚拟数据,我会做的事情与它.我有一个csv文件中的assets资源 文件夹,包含这些数据.有200+行数据.我只需要读它,我不需要写文件.

我需要读取文件,然后最终将每一行解析为一个类,然后将其放入映射中.不过,解析并将其放入映射与我的问题无关.

我用的是17.1.3度角.我没有app.mode.ts文件,因为我处于独立模式(在修复中多次提到这一点).其他任何东西都没有导入到项目中.这是一个全新的项目.


我try 使用httpClient,但我遇到了一些问题,因为它没有提供:

import { Injectable } from '@angular/core';
import { Company } from './company';
import { HttpClient } from '@angular/common/http';
import { IDirectoryService } from './directory.service.interface';

@Injectable({
  providedIn: 'root'
})

export class DirectoryService implements IDirectoryService{
  directory = new Map();
    constructor(private http:HttpClient){
      const fileName = "testData.csv";    
      this.http.get('assets/'+fileName, {responseType: 'text'}).subscribe(data => console.log(data));
    }

    public getCompany(id:string):Company{
      return this.directory.get(id);
    }

    public getCount():Number{
      return this.directory.size;
    }
}
ERROR Error [NullInjectorError]: R3InjectorError(Standalone[_AppComponent])[_DirectoryService -> _DirectoryService -> _HttpClient -> _HttpClient]:
  NullInjectorError: No provider for _HttpClient!

然后我try 将该文件作为导入文件导入,但:

import * as data from '../../../assets/testData.csv';
Cannot find module '../../../assets/testData.csv' or its corresponding type declarations.

我只是想导入一个简单的CSV文件.这么简单的事情不会这么难吧?我可以把它转换成txt,如果它会更容易.

我在网上关注了几个教程.然后我遇到了错误,然后我在谷歌上搜索了这些错误,但大多数错误都提到了一个app.mode.ts文件,该文件似乎在以后的ANGLING版本中消失了.每当我寻找解决方案时,它们要么是针对较旧的版本,要么是作者有一些不相关的问题阻碍了他们,因此能够解决它.

推荐答案

添加provideHttpClient到环境Provider ,这将解决您的问题!

import { provideHttpClient } from '@angular/common/http';
...

...
bootstrapApplication(App, {
  providers: [
    ...
    provideHttpClient(),
    ...
  ]
});

Typescript相关问答推荐

如何在不使用变量的情况下静态判断运算式的类型?

如何传递基于TypScript中可变类型的类型?

为什么在TypScript中写入typeof someArray[number]有效?

处理API响应中的日期对象

用泛型类型覆盖父类函数导致类型y中的Property x不能赋给基类型Parent中的相同属性."'''''' "

类型{...}的TypeScript参数不能赋给类型为never的参数''

如何按不能保证的功能过滤按键?

如何在另一个参数类型中获取一个参数字段的类型?

使用Dockerfile运行Vite React应用程序时访问env变量

有什么方法可以类型安全地包装import()函数吗?

(TypeScript)TypeError:无法读取未定义的属性(正在读取映射)"

try 使Angular依赖注入工作

如何通过属性名在两个泛型数组中找到匹配的对象?

使用ngfor循环时,数据未绑定到表

如何在本地存储中声明该类型?

为什么看起来相似的代码在打字时会产生不同的错误?

Typescript循环函数引用

带动态键的 TS 功能

Typescript 确保通用对象不包含属性

const nav: typechecking = useNavigation() 和 const nav = useNavigation() 之间有什么区别?