[英]How to set value in a reactive form control in angular, using the value obtained from the call back function?
我在这里使用引导箱,并且能够从提示中接收值,并且还能够对其进行控制台(使用回调函数)。 但是我无法在 addAssessentForm 的表单控件(overallPercent)之一中设置相同的值。
(我想将从提示输入框(单击按钮)获得的值设置为反应式表单输入框)
HTML 代码:
<div> <input type="checkbox" class="form-check-input" [attr.disabled]="disabledLocation" formControlName="rural" (click)="onRuralClick($event)" /> <label class="mx-2"> Rural</label> </div>
TS 代码:
onRuralClick(e) { let ans; let ruralCheck = e.target.checked; if (ruralCheck == true) { bootbox.prompt({ title: "Enter Ratio", size: 'small', centerVertical: true, buttons: { cancel: { label: '<i class="fa fa-times"></i>', className: 'btn-danger', }, confirm: { label: '<i class="fa fa-check"></i>', className: 'btn-success' } }, callback: function(result: number) { ans = result; console.log(ans); }, }); // this.addAssessmentForm.controls['overallPercent'].setValue(ans); } }
一个初始化所有表单控件的方法:
createForm() { this.addAssessmentForm = this.fb.group({ assessmentId: [], assessmentName: [ ], ], assessmentDescription: [null, [Validators.maxLength(200)]], startDateCheck: [], startDate: [], endDateCheck: [], endDate: [], totalNumberOfDay: [this.calnumofDays, [Validators.required]], class: [], status: [true], rural: [], urban: [], overallPercent: [], }); }
如果要访问类变量,只需使用箭头函数:
onRuralClick(e) {
let ans;
let ruralCheck = e.target.checked;
if (ruralCheck == true) {
bootbox.prompt({
title: "Enter Ratio",
size: 'small',
centerVertical: true,
buttons: {
cancel: {
label: '<i class="fa fa-times"></i>',
className: 'btn-danger',
},
confirm: {
label: '<i class="fa fa-check"></i>',
className: 'btn-success'
}
},
callback: (result: number) => {
ans = result;
this.addAssessmentForm.controls['overallPercent'].setValue(ans);
console.log(ans);
},
});
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.