Partage
  • Partager sur Facebook
  • Partager sur Twitter

NullInjectorError: No provider for UserService!

Je ne parviens pas à créer un utilisateur.

    12 octobre 2021 à 18:56:28

    Bonjour,

    Je suis actuallement la formation https://openclassrooms.com/fr/courses/4668271-developpez-des-applicati mon code est identique à celui du professeur mais je vois cette erreur dans la console de mon navigateur quand j'essaie de créer un utilisateur:

    J'ai googlé pendant 4 heures sans success.

    Le contenu de mon User.model.ts:

    export class User {
    
    	constructor(public firstName: string, public lastName: string,
    		public email: string, public drinkPreference: string,
    		public hobbies?: string[]) {
    
    	}
    }

    Le contenu de mon user.service.ts:

    import {User} from "../models/User.model";
    import {Subject} from "rxjs/Subject";
    
    export class UserService {
    
    	private users: User[] = [
    		{
    			firstName: "James",
    			lastName: "Smith",
    			email: 'james@gmail.com',
    			drinkPreference: "Coca",
    			hobbies: [
    				'coder',
    				'La defustation de café'
    			]
    		}
    	];
    	userSubject = new Subject<User[]>();
    
    	emitUsers() {
    		this.userSubject.next(this.users.slice());
    	}
    
    	addUser(user: User) {
    		this.users.push(user);
    		this.emitUsers();
    	}
    
    }

    Le contenu de mon user-list.component.ts:

    import { Component, OnInit,  OnDestroy } from '@angular/core';
    import { User } from '../models/User.model';
    import { Subscription } from 'rxjs/Subscription';
    import { UserService } from '../services/user.service';
    
    @Component({
      selector: 'app-user-list',
      templateUrl: './user-list.component.html',
      styleUrls: ['./user-list.component.scss']
    })
    export class UserListComponent implements OnInit, OnDestroy {
    
      users: User[];
      userSubscription: Subscription;
    
      constructor(private userService: UserService) { }
    
      ngOnInit(): void {
        this.userSubscription = this.userService.userSubject.subscribe(
            (users: User[]) => {
              this.users = users;
            }
          );
        this.userService.emitUsers();
      }
    
      ngOnDestroy() {
        this.userSubscription.unsubscribe();
      }
    
    }
    



    Quelqu'un a-t-il une idée sur comment resoudre celà ?

    Merci.

    -
    Edité par koulou koula 13 octobre 2021 à 7:53:45

    • Partager sur Facebook
    • Partager sur Twitter
      14 octobre 2021 à 4:24:25

      Bonjour, je connais pas Angular mais en tapant sur google Angular NullInjectorError j'ai trouvé ce topic sur stackoverflow

      Où un quelqu'un n'arrive pas un utilisé une class en tant que service non plus et à la même erreur que toi.

      La réponse la mieux noté propose de renseigné la class dans la clés providers du @NgModule dans le fichier app.module.ts, qui j'imagine doit être un fichier config à la racine du projet.

      import { BrowserModule } from '@angular/platform-browser';
      import { NgModule } from '@angular/core';
      
      
      import { AppComponent } from './app.component';
      import { UserService } from './path/user.service';
      // ...
      
      @NgModule({
        declarations: [
          AppComponent,
          // ...
        ],
        imports: [
          BrowserModule,
          UserService
        ],
        providers: [UserService],
        bootstrap: [AppComponent]
      })
      export class AppModule { /* ... */ }



      -
      Edité par SamuelGaborieau3 14 octobre 2021 à 4:29:31

      • Partager sur Facebook
      • Partager sur Twitter

      suggestion de présentation.

      NullInjectorError: No provider for UserService!

      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
      • Editeur
      • Markdown