/ / angular4 Errore ERRORE: nessun provider per NetworkService - angolare

angular4 Errore ERRORE: nessun provider per NetworkService - angolare

prima volta creando un progetto angular4. aggiungo network.service.ts ai provider services.module.ts, poi aggiungo services.module.ts ai provider shared.module.ts e poi aggiungo shared.module.ts ai provider app.module.ts. quando cerco di utilizzare NetworkService nella mia vista ottengo ERRORE Errore: nessun provider per NetworkService.

quando aggiungo NetworkService direttamente ai provider app.module.ts, questo errore non si verifica.

mi piacerebbe sapere se è possibile mettere in catena i provider come ho fatto io e se sì come farlo al momento.

network.service.ts

import { Injectable } from "@angular/core";

@Injectable()

export class NetworkService {

constructor() { }

test = "testing";

myTest(){
return "method testing";
}

}

service.module.ts

import { NgModule } from "@angular/core";
import { NetworkService } from "./network.service";


@NgModule({
imports: [],
exports:[],
declarations: [],
entryComponents: [],
providers: [NetworkService]
})

export class ServicesModule {
}

shared.module.ts

import { NgModule } from "@angular/core";
import { ServicesModule } from "./services/services.module";


@NgModule({
imports: [],
exports:[],
declarations: [],
entryComponents: [],
providers: [
ServicesModule,
]
})

export class SharedModule {
}

app.module.ts

import { BrowserModule }    from "@angular/platform-browser";
import { NgModule }         from "@angular/core";
import { RouterModule }     from "@angular/router";

import { SharedModule }     from "./shared/shared.module";

import { AppComponent }     from "./app.component";

import { ROUTES } from "./app.route";

@NgModule({
declarations: [
AppComponent,
],
imports: [
BrowserModule,
RouterModule.forRoot(ROUTES)
],
providers: [
SharedModule,
],
bootstrap: [AppComponent]
})
export class AppModule { }

inserisci la descrizione dell'immagine qui

risposte:

0 per risposta № 1

La tua definizione di ServiceModule va bene, tuttavia, è necessario importare il modulo in altri moduli funzione invece di fornirli:

import { NgModule } from "@angular/core";
import { ServicesModule } from "./services/services.module";


@NgModule({
imports: [ServicesModule], // import modules
exports:[],
declarations: [],
entryComponents: [],
providers: [] // do not provide modules
})

export class SharedModule {
}

Lo stesso vale per il tuo AppModule. Non è necessario mettere i tuoi servizi nel exports: [] di un modulo, è inteso solo per direttive, tubi e altri moduli (con componenti che costituiscono una sotto-forma di direttive).


0 per risposta № 2

Devi aggiungere un provider nel tuo modulo app

Il provider deve essere aggiunto alla linea dei provider con SharedModule