访问Angular的输入形式,并在其上插入数据
我正在尝试以Angular创建编辑选项,但是我需要的是,当我单击此选定项目的编辑数据发送到表单时,然后以输入形式显示,以编辑它们的能力
是将ID发送到端点,然后使用API返回此数据,但是现在我需要以表单显示它,但是我不知道该如何访问输入表单并在其上写入?
这是我的 html 代码:
<form class="form" [formGroup]="editStudentform">
<div class="user-box">
<input name="serialNumber" required="" formControlName="serialNumber" type="number"> invoice.serialNumber
<label>serial Number</label>
</div>
<div class="user-box">
<input name="status" required="" formControlName="status" type="text">
<label>status</label>
</div>
<div class="user-box">
<input name="customerSerialNumber" required="" formControlName="customerSerialNumber" type="text">
<label>customer Serial Number</label>
</div>
<div class="user-box">
<input name="employeeSerialNumber" required="" formControlName="employeeSerialNumber" type="text">
<label>employee Serial Number</label>
</div>
<a routerLink="/invoics" routerLinkActive="active" (click)="editStudent()" type="submit" >
这是mu typescript 代码:
导出类updateIndVoiceComponent在ininit {
editStudentform: FormGroup = this._formbuilder.group({
serialNumber : ['' , Validators.required],
status : ['' , Validators.required],
customerSerialNumber : ['' , Validators.required],
employeeSerialNumber : ['' , Validators.required]
});
id :number = -1;
constructor(private _formbuilder: FormBuilder,
private _http: HttpClient,
private route:ActivatedRoute
) { }
invoice : any;
ngOnInit(): void {
this.id = this.route.snapshot.params['id'];
this._http
.get('http://localhost:8085/invoice/get-invoice/'+this.id)
.subscribe((response: any) => {
this.invoice = response;
});
// i think i should write smth here
}
editStudent(){
let serialNumber = this.editStudentform.get('serialNumber')?.value;
let status = this.editStudentform.get('status')?.value;
let customerSerialNumber = this.editStudentform.get('customerSerialNumber')?.value;
let employeeSerialNumber = this.editStudentform.get('employeeSerialNumber')?.value;
let url = "http://localhost:8085/invoice/update/";
let obj = {serialNumber:serialNumber , status:status , customerSerialNumber:customerSerialNumber,employeeSerialNumber:employeeSerialNumber}
this._http.put(url,obj).subscribe(data=>{console.log(data)
alert("row edited");
})
}
}
postman中的此API响应示例:
I'm trying to create edit option in angular, but what i need is when i click edit data of this selected item send to form and then display it in inputs form with the ability to edit them
what i did is send the id in the endpoint , then using api i return this data, but now i need to display it in the form , but what i didn't know that how can i access the inputs form and write on it ?
this my html code :
<form class="form" [formGroup]="editStudentform">
<div class="user-box">
<input name="serialNumber" required="" formControlName="serialNumber" type="number"> invoice.serialNumber
<label>serial Number</label>
</div>
<div class="user-box">
<input name="status" required="" formControlName="status" type="text">
<label>status</label>
</div>
<div class="user-box">
<input name="customerSerialNumber" required="" formControlName="customerSerialNumber" type="text">
<label>customer Serial Number</label>
</div>
<div class="user-box">
<input name="employeeSerialNumber" required="" formControlName="employeeSerialNumber" type="text">
<label>employee Serial Number</label>
</div>
<a routerLink="/invoics" routerLinkActive="active" (click)="editStudent()" type="submit" >
and this is mu typescript code :
export class UpdateInvoiceComponent implements OnInit {
editStudentform: FormGroup = this._formbuilder.group({
serialNumber : ['' , Validators.required],
status : ['' , Validators.required],
customerSerialNumber : ['' , Validators.required],
employeeSerialNumber : ['' , Validators.required]
});
id :number = -1;
constructor(private _formbuilder: FormBuilder,
private _http: HttpClient,
private route:ActivatedRoute
) { }
invoice : any;
ngOnInit(): void {
this.id = this.route.snapshot.params['id'];
this._http
.get('http://localhost:8085/invoice/get-invoice/'+this.id)
.subscribe((response: any) => {
this.invoice = response;
});
// i think i should write smth here
}
editStudent(){
let serialNumber = this.editStudentform.get('serialNumber')?.value;
let status = this.editStudentform.get('status')?.value;
let customerSerialNumber = this.editStudentform.get('customerSerialNumber')?.value;
let employeeSerialNumber = this.editStudentform.get('employeeSerialNumber')?.value;
let url = "http://localhost:8085/invoice/update/";
let obj = {serialNumber:serialNumber , status:status , customerSerialNumber:customerSerialNumber,employeeSerialNumber:employeeSerialNumber}
this._http.put(url,obj).subscribe(data=>{console.log(data)
alert("row edited");
})
}
}
This api response example in postman:
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
首先,您应该为发票创建一个类/接口,并且不要使用任何IFF,
而不是在订阅中可以做类似的事情。
First of all you should create a class/interface for the invoice and don't use any iff possible ,
Than , in the subscription you could do something like this.