angular 8 Ошибка: неожиданное значение «HttpClient», импортированное модулем «AppModule». Пожалуйста, добавьте аннотацию @NgModule - PullRequest
2 голосов
/ 04 марта 2020

Я в полном недоумении, почему я получаю эту ошибку. Я потратил 10 с лишним часов, просматривая angular учебные пособия и вопросы переполнения стека. Все в моей голове говорит о чем-то маленьком, но я почти на грани. пожалуйста, направьте меня в правильном направлении.

app.module.ts

import { NgModule } from '@angular/core';
import { AppComponent } from './app.component';
import { UploadComponent } from './upload/upload.component';
import {  FormsModule,  ReactiveFormsModule } from '@angular/forms';
import { HttpClientModule, HttpClient } from '@angular/common/http';


@NgModule({
  declarations: [
    AppComponent,
    UploadComponent
  ],
  imports: [
    BrowserModule,
   FormsModule,
    ReactiveFormsModule,
    HttpClientModule,
     HttpClient
  ],
  providers: [],
  bootstrap: [AppComponent, UploadComponent]
})
export class AppModule { }

uploadcomponent.ts

import { FormBuilder, ReactiveFormsModule, FormGroup, FormControl } from '@angular/forms';
import { HttpClientModule, HttpClient } from '@angular/common/http';

@Component({
  selector: 'app-upload',
  templateUrl: './upload.component.html',
  styleUrls: ['./upload.component.scss']
})

export class UploadComponent implements OnInit {

    SERVER_URL = 'http://localhost:3000/upload';
    uploadForm: FormGroup;

  constructor(private formBuilder: FormBuilder, private httpClient: HttpClient) { }

  ngOnInit() {
    this.uploadForm = this.formBuilder.group({
      profile: ['']
    });
  }

  onFileSelect(event) {
    if (event.target.files.length > 0) {
      const file = event.target.files[0];
      this.uploadForm.get('profile').setValue(file);
    }
  }

  onSubmit() {
    const formData = new FormData();
    formData.append('file', this.uploadForm.get('profile').value);

    this.httpClient.post<any>(this.SERVER_URL, formData).subscribe(
      (res) => console.log(res),
      (err) => console.log(err)
    );
  }

}

uploadcomponent. html

    <form [formGroup] = "uploadForm" (ngSubmit)="onSubmit()">
      <div>
        <input type="file" name="profile" (change)="onFileSelect($event)" />
      </div>
      <div>
        <button type="submit">Upload</button>
      </div>
     </form>
  </div>```

1 Ответ

3 голосов
/ 04 марта 2020

У вас уже есть HttpClientModule, который требуется, вам нужно удалить HttpClient при импорте,

imports: [
    BrowserModule,
    FormsModule,
    ReactiveFormsModule,
    HttpClientModule,
    HttpClient // remove this
 ]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...