Ich habe eine dynamisch aufgebaute FormArray
, die durch den folgenden Code generiert wird.Angular: Dynamisch generierte FormArray mit einer großen Anzahl von FormGroups als Mitglieder macht die Seite nicht mehr reagierend
this.priceListForm.addControl('priceListLines', this.formBuilder.array(this.priceListDetails.priceListLines.map(item => this.buildPriceListItem(item.listLinesId, item.prn, item.price, item.currencyCode, item.startDateActive, item.endDateActive)), dateConflictsValidator));
priceListDetails.priceListLines
ist ein Array von JSON-Objekte und ich Abbilden sie FormGroup
s buildPriceListItem
mit sein.
buildPriceListItem(listLinesId, prn, price, currencyCode, startDateActive, endDateActive): FormGroup {
return this.formBuilder.group({
listLinesId: listLinesId,
prn: [prn, Validators.required],
price: [price, Validators.required],
currencyCode: [currencyCode, Validators.required],
startDateActive: [startDateActive, Validators.required],
endDateActive: [endDateActive, Validators.required]
}, { validator: startAndEndDateValidator });
}
Wie Sie sehen können, habe ich eine FormGroup
Ebene Validator sowie eine FormArray
Ebene Validator.
Dieser große Prozess, der für das gesamte FormArray
, macht der Browser nicht reagierenden ‚Mapping‘ ein Array (großer Größe) von Objekten in JSON FormArray
von FormGroup
s und Lauf Validierer für jede generierte FormGroup
und komplexe Validierung beinhaltet.
Die Dinge funktionieren gut, wenn der Datensatz klein ist.
Bitte helfen Sie mir mit einem Workaround dafür.
Haben Sie versucht, die Validatoren zu deaktivieren? – c69
@ c69 Ich möchte die Validatoren. Selbst wenn ich die Validatoren entferne, wird die Zeit, in der die Seite nicht mehr reagiert, reduziert. – karthikaruna
Ok .. wenn Sie sagen, dass die Seite auch ohne Validatoren langsam ist - wie viele Elemente insgesamt? Welchen Code verwendest du, um innere formGroups zu generieren? Der, den du gezeigt hast - sieht unschuldig aus. – c69