Nullinjectorerror:没有 httpclient 的提供者!没有 app.module.ts

Vio*_*lla 9 httpclient ionic-framework angular ionic6

我正在尝试使用 HttpClient 读取 Ionic Angular 中的 JSON,但收到此错误“nullinjectorerror:没有 httpclient 的提供程序!”。

问题是最新版本的 Angular 不会生成 app.module.ts。

我的代码:

import { Component, OnInit } from '@angular/core';
import { CommonModule } from '@angular/common';
import { FormsModule } from '@angular/forms';
import { IonicModule } from '@ionic/angular';

import { HttpClient } from '@angular/common/http';
import { map } from 'rxjs';

@Component({
  selector: 'app-ficha-evento',
  templateUrl: './ficha-evento.page.html',
  styleUrls: ['./ficha-evento.page.scss'],
  standalone: true,
  imports: [IonicModule, CommonModule, FormsModule]
})
export class FichaEventoPage implements OnInit {

  event:any=[];

  constructor(private http: HttpClient) { }

  ngOnInit() {
    this.getEvnt().subscribe(res=>{
      /*console.log("res",res);*/
      this.event=res;
    });
  }
  
  getEvnt(){
    return this.http
    .get('assets/eventos.json')
    .pipe(
      map((res:any)=>{
        return res.data;
      })
    )
  }

}
Run Code Online (Sandbox Code Playgroud)

任何想法?谢谢!!

我试图在 page.module.ts 中导入 HttpClientModule,但它不起作用。我还尝试手动生成 appModule...也不起作用。

现在我正在寻找其他方法来访问 Json 文件......

Che*_*pan 21

为了HttpClient在独立应用程序中提供,我们可以这样做

主要.ts

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

bootstrapApplication(AppComponent, {
  providers: [provideHttpClient()]
})
Run Code Online (Sandbox Code Playgroud)


小智 14

standalone在默认设置选项的Angular 17 中,app.config.ts文件在中生成,src/app/并且可以添加到inprovideHttpClient()列表中:providersapp.config.ts

import { ApplicationConfig } from '@angular/core';
import { provideRouter } from '@angular/router';

import { routes } from './app.routes';
import { provideClientHydration } from '@angular/platform-browser';
import { provideHttpClient } from '@angular/common/http';

export const appConfig: ApplicationConfig = {
  providers: [
    provideRouter(routes),
    provideClientHydration(),
    provideHttpClient(),
  ],
};

Run Code Online (Sandbox Code Playgroud)