gpt4 book ai didi

Angular react 形式

转载 作者:行者123 更新时间:2023-12-02 03:37:16 28 4
gpt4 key购买 nike

我是 Angular 5 的新手。我目前正在研究 Angular Reactive 表单。我有一个下面的 JSON 结构,我需要在从 FORM 获取值后发回 REST API。

JSON 结构:

 {
"empDesg": "Sr Developer",
"empID": 123,
"empName": "Sam",
"empSkills": [
"Java",
"Devops"
]
}

我设法将 empID、empName 和 empDesg 映射到表单控件;它们都将成为输入文本元素。我想使用 formcontrols 或 formarray 将 empSkills 映射到 Checkboxes(但不确定使用哪一个)- 只有我被卡住了。

我的 HTML 和组件类:

addEmp.component.html

 <form class="form-emp" [formGroup]="empForm">
<div class="form-group row ">
<label for="empID" class="col-sm-2 col-form-label">EmpID</label>
<div class="col-sm-10">
<input type="text" formControlName="empID" name="empID" class="form-control" id="empID" placeholder="Employee ID">
<div *ngIf="empForm.controls.empID.invalid && empForm.controls.empID.touched">
<ngb-alert type="danger" [dismissible]="false">Employee ID is must</ngb-alert>
</div>
</div>

</div>
<div class="form-group row">
<label for="empName" class="col-sm-2 col-form-label">EmpName</label>
<div class="col-sm-10">
<input type="text" formControlName="empName" name="empName" class="form-control" id="empName" placeholder="Employee Name">
</div>
</div>
<div class="form-group row">
<label for="empDesgn" class="col-sm-2 col-form-label">Emp Title</label>
<div class="col-sm-10">
<input type="text" formControlName="empDesg" name="empDesg" class="form-control" id="empDesgn" placeholder="Employee Title">
</div>
</div>
<p>Form value: {{ empForm.value | json }}</p>
<div class="form-group row">
<div class="col-sm-2">Skillset</div>
<div class="col-sm-10">
<div class="form-check">
<input class="form-check-input" formControlName="skillSet" type="checkbox" id="gridCheck1">
<label class="form-check-label" for="gridCheck1">
Java
</label>
</div>
<div class="form-check">
<input class="form-check-input" formControlName="skillSet" type="checkbox" id="gridCheck1">
<label class="form-check-label" for="gridCheck1">
Dot Net
</label>
</div>
<div class="form-check">
<input class="form-check-input" formControlName="skillSet" type="checkbox" id="gridCheck1">
<label class="form-check-label" for="gridCheck1">
Dev Ops
</label>
</div>
<div class="form-check">
<input class="form-check-input" formControlName="skillSet" type="checkbox" id="gridCheck1">
<label class="form-check-label" for="gridCheck1">
Business Analyst
</label>
</div>
<div class="form-check">
<input class="form-check-input" formControlName="skillSet" type="checkbox" id="gridCheck1">
<label class="form-check-label" for="gridCheck1">
Automation Testing
</label>
</div>
<div class="form-check">
<input class="form-check-input" formControlName="skillSet" type="checkbox" id="gridCheck1">
<label class="form-check-label" for="gridCheck1">
UX
</label>
</div>
</div>
</div>
<div class="form-group row">
<div class="col-sm-10">
<button type="submit" class="btn btn-primary" (click)="diag()">Add Employee</button>
</div>
</div>
</form>

添加EmpComponent.ts

import { Component, OnInit } from '@angular/core';
import { Employee } from '../Employee'
import { FormBuilder, FormGroup, FormArray, FormControl, Validators } from '@angular/forms';

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

empForm: FormGroup;
constructor(private fb: FormBuilder) {
this.createForm();
}

createForm() {
this.empForm = this.fb.group({
empID: ['', Validators.required],
empName: ['', Validators.required],
empDesg: ['', Validators.required]
});
}

model = new Employee();

ngOnInit() {

}

}

您能否分享您关于如何在我上面的 JSON 结构中使用 skillSet 数组映射复选框的输入。如果您与我分享一段有用的代码。非常感谢。

最佳答案

你可以查看 Reactive form in an app which I have created to play around with it .此应用程序还包含您迟早会遇到的其他功能。

skillList: any[] = ['Java',Dot Net','Dev Ops'];

createForm() {
this.empForm = this.fb.group({
empID: ['', Validators.required],
empName: ['', Validators.required],
empDesg: ['', Validators.required],
skills: this.fb.array(['Java','Devops']),
});
}

isSkillChecked(data) {
return this.rForm.controls['skills'].value.includes(data);
}

html

<label>Skill Set:
<span *ngFor="let skill of skillList">
<input type="checkbox"
(change)="onSkillChange(skill,$event.target.checked)"
[checked]="isSkillChecked(skill)" /> {{skill}}
</span>
</label>

我已修改我的示例以满足您的需要。看看并告诉我。

关于 Angular react 形式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49782253/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com