Почтовый запрос не отправлен на сервер - PullRequest
0 голосов
/ 20 мая 2018

Я пытаюсь опубликовать данные в своем API, которые извлекаю из формы.

Проблема в том, что он вообще не пытается отправить запрос на публикацию.Register.component.ts:

import { Component, OnInit } from '@angular/core';
import { RegisterService } from '../register.service';
import { FormGroup, FormBuilder, FormControl, Validators, FormArray, ReactiveFormsModule } from '@angular/forms';
import { user } from '../user'
@Component({
  selector: 'app-register',
  templateUrl: './register.component.html',
  styleUrls: ['./register.component.css']
})
export class RegisterComponent implements OnInit {
  public myForm: FormGroup;
  public submitted: boolean;
  public events: any[] = [];

  constructor(private registerService: RegisterService, 
  private _fb: FormBuilder) { }

  ngOnInit() {
    this.myForm = new FormGroup({
      username: new FormControl('', [<any>Validators.required, <any>Validators.minLength(5)]),
      email: new FormControl('', [<any>Validators.required, <any>Validators.minLength(5)]),
      org_number: new FormControl('', [<any>Validators.required, <any>Validators.minLength(5)]),
      password: new FormControl('', [<any>Validators.required, <any>Validators.minLength(8)])
    });
  }

  save(model: user, isValid: boolean){
    this.submitted = true;
    this.registerService.postUser(model)
    console.log(model, isValid)
  }

И сервис, который он вызывает:

import { Injectable } from '@angular/core';
import { user } from './user';
import { Observable, of } from 'rxjs';
import { map, catchError } from 'rxjs/operators'
import { HttpClient, HttpHeaders } from '@angular/common/http';

const HttpOptions = {
  headers: new HttpHeaders({ 'Content-type': 'application/json' })
};
const HttpOption2 = {
  headers: new HttpHeaders({ 'Content-type': 'application/x-www-form-urlencoded' })
}
@Injectable({
  providedIn: 'root'
})
export class RegisterService {

  private usersUrl= 'api/v1/accounts';

  constructor(
    private http: HttpClient,

  ) { }

  getUsers(): Observable<user[]> {
    return this.http.get<user[]>(this.usersUrl)
  }
  postUser(object): Observable<user[]>{
    console.log(object)
    console.log('Did it enter this?')
    return this.http.post<user[]>(this.usersUrl, user, HttpOptions)
  }
}

Мой код выводит ожидаемую информацию: имя пользователя: «имя пользователя», электронная почта: «электронная почта» и т. Д..

И я знаю, что она вызывает функцию, поскольку она также выводит: «Введена ли она в это?».

Мой API не получает пост-запрос, и я понятия не имею, почему.Я искал ответы на официальных угловых страницах Httpclient , а также на многочисленных сообщениях о переполнении стека, я пытался добавить .subscribe, но я получаю подписку с ошибкой, тип которой нельзя назначить наблюдаемому пользователю типа,если я добавляю .map (), я получаю, что карта не существует на типе наблюдаемого пользователя, и если я добавляю .pipe (), я не получаю сообщения об ошибке, но все еще нет Post-запроса.Тогда как если я добавлю .pipe (catchError (this.handleError ('addHero', hero)));Я получаю тип наблюдаемого пользователя не назначается типу наблюдаемого пользователя.Есть идеи?

1 Ответ

0 голосов
/ 20 мая 2018

Вам нужно подписаться на запрос, чтобы вызвать его,

  this.registerService.postUser(model).subscribe(result => this.result =result);

убедитесь, что объявили переменную с именем result для назначения ответных данных,

result : any;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...