typescript - Tilbakestill Angular reaktivt skjema unntatt et bestemt felt
med referanse (https://stackoverflow.com/questions/50197347/how-to-reset-only-specific-fields-of-form-in-angular-5), har jeg 20 felt i skjemaet. Hvis brukeren klikker på tilbakestillingsalternativet, trenger jeg å tilbakestille skjemaet unntatt 2 felt. Hvis jeg bruker this.form.reset(), betyr det at alt tilbakestilles. All hjelp er verdsatt
Svar #1
Se bare på onReset()-metoden. Denne koden vil tilbakestille alt unntatt name- og description-feltene
formGroup: FormGroup = /* init the formGroup... */
onReset() {
this.formGroup.reset({
name: this.formGroup.get('email').value,
description: this.formGroup.get('description').value
});
}
Stackblitz-reproduksjon
Svar #2
Du kan iterere over kontrollene i en FormGroup, og hvis kontrollens navn matcher det i ekskluderingslisten din, tilbakestiller du det ikke:
const exclude: string[] = ['formControlName1', 'formControlName2'];
Object.keys(this.form.controls).forEach(key => {
if (exclude.findIndex(q => q === key) === -1) {
this.form.get(key).reset();
}
});
