我有一个kendo-multiselect控件,它可以作为表单上的单独控件正常工作。一旦进入响应式表单(通过控件的循环),Kendo_multiselect就会通过以下错误提示:对象不支持属性或方法“ registerOnChange”
'mycomponent.html'
<div class="card-body bg-light col-lg-10">
<div formArrayName="significantAdults" *ngFor="let sigAdult of cdnForm.get('significantAdults').controls; let j = index">
<hr *ngIf="j>0" /> <!--add line to form-->
<div [formGroupName]="j">
<div class="form-group" >
<label class="font-weight-bold col-sm-6 control-label" [attr.for]="'significantAdultDistricts'+j">District</label>
<kendo-multiselect [data]="listDistrict" [textField]="'districtName'" [valueField]="'id'"
formControlName="significantAdultDistricts" class="form-control"
></kendo-multiselect>
</div>
</div>
</div>
mycomponent.ts
这是代码,当我设置Formgroup时,如果我删除了ificateAdultDistricts,并且所有控件仍然正常工作,它将引发onregisterchange错误。
const significantAdults = this.createsignificantAdultsForm(result.peopleCDNs);
this.cdnForm.setControl('significantAdults', significantAdults);
createsignificantAdultsForm(significantAdults: any[]): FormArray {
const formArray = new FormArray([]);
significantAdults.forEach(sig => {
if (sig.person.familyRole == "SignificantAdult") {
formArray.push(this.fb.group({
significantAdultId: sig.person.id,
significantAdultLastName: sig.person.lastName,
significantAdultFirstName: sig.person.firstName,
significantAdultDateOfBirth: new Date(sig.person.dateOfBirth + 'Z'),
significantAdultIDNumber: sig.person.idNumber,
significantAdultDistricts: this.setDistricts(sig.person),
//childDistricts: this.setDistricts(sig.person),
significantAdultAlias: sig.person.alias,
significantAdultAddress: sig.person.address,
}));
}
});
return formArray
}
setDistricts(x) {
let arr = new FormArray([])
x.personDistricts.forEach(y => {
arr.push(this.fb.group({
id: y.district.id,
districtName: y.district.districtName,
sortOrder: y.district.sortOrder,
}))
})
return arr;
}