Angular2 Reaktive Formen - Deaktivieren Sie die Formular-Steuerelement dynamisch vom Zustand
Ich habe eine select-Steuerelement, das möchte ich deaktivieren, dynamisch, abhängig von einer Bedingung:
this.activityForm = this.formBuilder.group({
docType: [{ value: '2', disabled: this.activeCategory != 'document' }, Validators.required]
});
Jedoch docType nicht aktiviert werden, obwohl irgendwann.activeCategory wird 'Dokument'.
Wie kann ich dieses Problem beheben?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Da ich nicht weiß, wie man manipulieren
activeCategory
(vielleicht ist es auch einFormControl
?), Ich werde vorschlagen, den folgenden Ansatz:Können Sie
(change)
zu erkennen, wennthis.activeCategory
hat sich geändert, wie folgt:1 - Wenn Sie
ngModel
:2 - Wenn es ein
FormControl
:So, in der Komponente, die Sie Bearbeiten können die
docType
Kontrolle Verwendungdisable/enable
Methoden:Sie haben, um Elemente auszuwählen, die anders, als Sie auch andere HTML-Elemente. Haben Sie eine Rücksetzung durchführen, wenn
this.activeCategory
änderungen.Etwas wie dieses:
this.activityForm.controls['docType'].reset({ value: '2', disabled: false });
Natürlich, werden Sie wahrscheinlich wollen, um den aktuellen Wert, anstatt eine hartcodierte
'2'
.Gleiche Art von Sache, um es zu deaktivieren, wenn das notwendig erscheint (und es wohl auch wird).
this.activityForm.controls['docType'].reset({ value: '2', disabled: true });
Mehr Informationen über ng form-control zurücksetzen.
setValue
oderpatchValue
?setValue
undpatchValue
sind für die änderung der Formular-Steuerelemente-Wert, nicht visuellen Zustand.