angular - Reactiv skjema patchValue() i For-løkke
Følgende eksempelkode:
model={name: "D100"
value: "Dying"};
for (let key in model) {
if(this.divisionForm.controls.hasOwnProperty(key)) {
let value = divisionModel[key];
this.form.patchValue({
key: value
});
}
}
- Finnes det noen måte å oppnå løkkingen av objektet og sette inn nøkkel-verdi-par i Angular reactive forms patchValue()
- Jeg kan ikke ha verdier som settes i skjemaet. Jeg kan oppnå dette ved å manuelt legge til setValue() og bruke destrukturering for å hente objektene og sette dem, noe som fører til veldig lang kode i større skjemaer.
Jeg har strukturert i dette i lang tid, vennligst hjelp meg. Takk på forhånd.
Svar #1
Bare spred verdien på skjemaet ditt og overskriv egenskapene du vil endre.
Som en parentes, patchValue skal beholde verdiene til nøklene du ikke oppgir, f.eks. å gi en enkelt nøkkel vil beholde alle andre nøkler på deres faktiske verdi.
Her er en stackblitz: https://stackblitz.com/edit/angular-xlxcic?file=src%2Fapp%2Fapp.component.ts
constructor() {
const form = new FormGroup({
name: new FormControl(''),
surname: new FormControl('')
});
form.patchValue({
...form.value,
name: 'name of the user'
});
form.patchValue({
surname: 'surname of the user, with name kept'
});
console.log(form.value);
}
Svar #2
prøv dette, ingen grunn til å bruke løkke
this.form.patchValue(model)
For informasjon besøk, https://dev.to/crazedvic/using-patchvalue-on-formarrays-in-angular-7-2c8c
