Tengo 2 módulos ( AppModule y BookModule ), el componente de BookModule inyectó un servicio que usa HttpClient , así que HttpClientModule en él. Pero la aplicación todavía necesita importar HttpClientModule en AppModule.
Según tengo entendido, necesitamos importar el módulo donde se necesita en lugar de RootModule.
aquí está el enlace CodeSanbox
Si importa cualquier módulo como HttpClientModule en AppModule , los componentes, servicios, etc., del módulo importado serán accesibles desde todos los componentes de su aplicación.
Por cierto, es posible que haya olvidado importar BookModule en AppModule y, por este motivo, aún necesita importar HttpClientModule en AppModule aunque ya importó HttpClientModule en BookModule . Sin embargo, si BookModule se importa dentro AppModule , no tiene que importar HttpClientModule en AppModule .
Revisé su código, no ha importado su Módulo de Book Module de App Module , modifique su app.module.ts como se muestra a continuación
import { BrowserModule } from '@angular/platform-browser'; import { NgModule } from '@angular/core'; import { AppComponent } from './app.component'; import { AppRoutingModule } from './app-routing.module'; import { PageNotFoundComponent } from './not-found/not-found.component'; import { BookModule } from './book/book.module'; // Import Book Module @NgModule({ declarations: [AppComponent, PageNotFoundComponent], imports: [ BrowserModule, AppRoutingModule, BookModule // Add your Module inside the imports array ], providers: [], bootstrap: [AppComponent] }) export class AppModule {}Ahora funcionará bien sin error
según el comentario de @Eliseo, he aclarado mi duda sobre el proveedor.
si el servicio proporcionado en el ámbito raíz, su dependencia debe importarse en appmodule.