Опубликовать способ отправки формы на API - PullRequest
1 голос
/ 19 сентября 2019

Есть угловая форма 8

my-form.component.html

<div class="container">
<form novalidate [formGroup]="registrationForm">
    <div class="form-group">
        <label for="firstName">Имя:</label>
        <input #spy required pattern=[A-Za-zА-Яа-яЁё]{2,} name="firstName" id="firstName" type="text" class="form-control" formControlName="firstName">
    </div>
    <div class="form-group">
        <label for="lastName">Фамилия:</label>
        <input #spy required pattern=[A-Za-zА-Яа-яЁё]{2,} name="lastName" id="lastName" type="text" class="form-control" formControlName="lastName">
    </div>
    <div class="form-group">
        <label for="email">E-mail:</label>
        <input #spy required email name="email" id="email" type="email" class="form-control" formControlName="email">
    </div>
    <!--{{ spy.className }}-->
    <button type="submit" class="btn btn-succes" (click)="submit(myForm)">Отправить</button>
</form>

Когда пользователь записывает данные, кнопка отправки должна отправлять данные в API с помощью POSTметод.Если вам нужен какой-либо код, оставьте комментарий

ts code:

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

@Component({
  selector: 'app-my-form',
  templateUrl: './my-form.component.html',
  styleUrls: ['./my-form.component.css']
})
export class MyFormComponent implements OnInit {

  registrationForm: FormGroup;

  constructor() { }

  ngOnInit() {
    this.registrationForm = new FormGroup({
      firstName: new FormControl(),
      lastName: new FormControl(),
      email: new FormControl()
    });
  }

}```

Ответы [ 2 ]

1 голос
/ 19 сентября 2019

у меня есть простой пример для вас ....

ссылка

----html----

<header class="masthead">
   <div class="container h-100">
       <div class="row h-100 align-items-center justify-content-center">
           <div class="col-6">
               <div class="text-center">
                   <hello name="{{ name }}"></hello>
                    <hr>
            </div>
            <form #send="ngForm" (ngSubmit)="sendFRMData(send.value)">
                <div class="form-group">
                    <label for="title" class="text-muted">Title</label>
                <input type="text" class="form-control" id="title" 
name="titlefrm" ngModel #title='ngModel' required>
      <span class="help-block text-danger" *ngIf="!title.valid && 
title.touched">Please give Title!!</span>
      </div>
      <div class="form-group">
                    <label for="body" class="text-muted">Body</label>
<input type="text" class="form-control" id="body" name="bodyfrm" ngModel 
#body='ngModel' required>
<span class="help-block text-danger" *ngIf="!body.valid && 
body.touched">Please 
give Body!!</span>
      </div>
      <div class="form-group">
                    <label for="userId" class="text-muted">UserID</label>
<input type="text" class="form-control" id="userId" name="userIdfrm" ngModel 
#userid='ngModel' required>
<span class="help-block text-danger" *ngIf="!userid.valid && 
userid.touched">Please give UserID!!</span>
      </div>
      <div class="row">
        <div class="col-sm-6">
          <input class="form-control btn btn-success" type="submit" 
[disabled]='!send.valid'>
        </div>
        <div class="col-sm-6">
          <input class="form-control btn btn-info" type="button" value="EDIT" 
(click) = 'onEdit()'>
        </div>
      </div>
</form>
        </div>
</div>
</div>
</header>

----ts----
import { NgForm } from '@angular/forms';
@ViewChild('send') send: NgForm;
constructor(private sendData: HttpService) {
  }
sendFRMData(data: any) {
const payload = {
  title: data.titlefrm,
  body: data.bodyfrm,
  userId: data.userIdfrm
}
this.sendData.try(payload).subscribe(
  (data: any) => {
    this.respondedData = JSON.stringify(data);
    this.alert = true;
  }
);
}

----service----

try(data){ 
return 
this.http.post('https://jsonplaceholder.typicode.com/posts',data,{
headers: {
    "Content-type": "application/json; charset=UTF-8"
       }
   });
}

надеюсь, что вы получите ответ ...

0 голосов
/ 19 сентября 2019

Похоже, вы не можете получить значения формы в вашей функции отправки.измените событие клика с (click)="submit(myForm)" на (click)="submit(myForm.value)", затем в функции отправки вы можете вызвать метод записи

submit(formValueObject) {
    console.log(formValueObject);
    this.httpService.post(url, formValueObject).subscribe((res:any)=> {
      //your response
    })
  }

Надеюсь, это поможет

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