Empecé a aprender Angular 4 y llegué a la parte con HTTP Client. En este momento estoy tratando de hacer una llamada http desde el componente (sí, sé que debería transferirlo al servicio, pero aún así)

Pero por alguna razón, cuando trato de inyectar HttpClient en mi Componente, aparece el siguiente error:

Error no detectado: no se pueden resolver todos los parámetros para PromocodeComponent: (?).

Aquí está el código de mi componente:

import { Ticket } from '../../classes/Ticket.class'
import { Component, Input } from '@angular/core';
import { HttpClient } from '@angular/common/http';

@Component({
  selector: 'promocode',
  templateUrl: './promocode.template.html',
  styleUrls: ['./promocode.styles.scss']
})
export class PromocodeComponent {
  @Input() ticket: Ticket;
  state: String = "normal";
  promocode: String = "";

   constructor(private http: HttpClient) {}

  promocodeValidate(event): void{
    console.log(this.promocode);
    console.log(event);
    this.http.get('/promocode/asdasda').subscribe(data => {
      console.log(data);
    });
  }
}

Y mi app.module.ts:

import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { AppComponent } from './app.component';
import { MovieBadgeComponent } from './movie-badge/movie-badge.component';
import { TicketComponent } from './ticket/ticket.component';
import { PromocodeComponent} from './promocode/promocode.component';
import { FormsModule } from '@angular/forms';
import { HttpClientModule } from '@angular/common/http';


@NgModule({
  declarations: [
    AppComponent,
    MovieBadgeComponent,
    TicketComponent,
    PromocodeComponent
  ],
  imports: [
    BrowserModule,
    HttpClientModule,
    FormsModule
  ],
  providers: [],
  bootstrap: [ AppComponent ]
})
export class AppModule {}
5
Nausik 30 oct. 2017 a las 13:39

3 respuestas

La mejor respuesta

Resulta que me perdí

"emitDecoratorMetadata": verdadera

En tsconfig

Fml ...

6
Nausik 30 oct. 2017 a las 15:38

Obtuve el mismo error cuando ejecuté pruebas unitarias (un archivo spec.ts) con Angular.

Lo siguiente es lo que hice:

     import { HttpClientModule, HttpClient } from '@angular/common/http'; 

     beforeEach(async(() => {
       TestBed.configureTestingModule({
         declarations: [ ],
         imports: [
           HttpClientModule
         ],
         schemas: [NO_ERRORS_SCHEMA],
         providers: [
           HttpClient,
         ]
       })
         .compileComponents();
      }));

Y el error se fue.

1
William Hou 14 ago. 2019 a las 20:02

Puede ser que necesite actualizar su entorno de desarrollo:

  • nodo
  • cli angular
  • versión de angular

E intenta de nuevo

-1
Fateh Mohamed 30 oct. 2017 a las 11:22