无法使用Creative form将表单数据发送到angular 6中的api终结点
我正在学习Angular 6,并在Django中创建了RESTAPI 我必须以JSON格式向服务器发送表单数据无法使用Creative form将表单数据发送到angular 6中的api终结点,angular,angular6,angular-forms,Angular,Angular6,Angular Forms,我正在学习Angular 6,并在Django中创建了RESTAPI 我必须以JSON格式向服务器发送表单数据 data = JSON.parse(data); // append contact_id data.contact_id = this.contact_id; data = JSON.stringify(data); 这就是我在组件中所做的 my.component.ts import { Component, OnInit } from '@angular/core'; imp
data = JSON.parse(data);
// append contact_id
data.contact_id = this.contact_id;
data = JSON.stringify(data);
这就是我在组件中所做的
my.component.ts
import { Component, OnInit } from '@angular/core';
import {FormBuilder, FormControl, FormGroup, Validators} from '@angular/forms';
import {AmountGivenService} from '../amount-given.service';
import {ActivatedRoute} from '@angular/router';
@Component({
selector: 'app-amount-given-add',
templateUrl: './amount-given-add.component.html',
styleUrls: ['./amount-given-add.component.css']
})
export class AmountGivenAddComponent implements OnInit {
addMoneyForm: FormGroup;
submitted = false;
contact_id: string;
constructor(
private formBuilder: FormBuilder,
private amountGivenService: AmountGivenService,
private route: ActivatedRoute
) { }
ngOnInit(): void {
this.route.params.subscribe(
param => {
this.contact_id = param['contact_id'];
}
);
console.log(this.contact_id);
this.addMoneyForm = this.formBuilder.group({
amount: new FormControl('', [
Validators.required
]),
duration: new FormControl()
});
}
get f() {
return this.addMoneyForm.controls;
}
onSubmit() {
this.submitted = true;
// stop here if form is invalid
if (this.addMoneyForm.invalid) {
console.log('invalid');
return;
}
console.log(this.addMoneyForm.getRawValue());
let data = this.addMoneyForm.value;
data = JSON.parse(data);
// append contact_id
data.contact_id = this.contact_id;
data = JSON.stringify(data);
this.amountGivenService.add(data).subscribe(res => {
console.log('req completed', res);
});
}
}
在发送请求之前,我需要附加联系人id
但是在提交表单时,页面将刷新表单,表单将作为GET方法提交
从上面的组件文件中删除此代码元素正在工作,并且正在将请求发送到服务器
data = JSON.parse(data);
// append contact_id
data.contact_id = this.contact_id;
data = JSON.stringify(data);
如何将值附加到组件中的表单数据?
编辑2:my.component.html
数量
金额是必需的
持续时间(天)
拯救
这毫无意义:
- 表单的值不是JSON字符串。它是一个物体。解析对象毫无意义
- 您的
不应该(显然也不应该)将JSON字符串作为参数。它应该(而且显然)接受一个类型化对象amountGivenService
const data = this.addMoneyForm.value;
data.contact_id = this.contact_id;
this.amountGivenService.add(data).subscribe(res => {
console.log('req completed', res);
});
此外,在模板中,“提交”按钮位于表单外部。它必须在里面。你能发布你表格的HTML吗?用HTML更新问题
const data = this.addMoneyForm.value;
data.contact_id = this.contact_id;
this.amountGivenService.add(data).subscribe(res => {
console.log('req completed', res);
});