Überprüfen, ob ein Angular2 form gültig ist oder nicht innerhalb der Komponente
Ich versuche zu prüfen, ob ein Formular gültig ist oder nicht, verhindern die weitere Ausführung, wenn es nicht ist.
Hier ist mein Fragebogen:
<form (ngSubmit)="updateFirstName(firstNameForm)" #firstNameForm="ngForm" novalidate>
<div class="form-group" ng-class="getCssClasses(formCtrl, formCtrl.firstName)">
<div class="input-group">
<input type="text"
ngControl="firstName"
#firstName="ngForm"
required
minlength="2"
maxlength="35"
pattern_="FIRST_NAME_PATTERN"
[ngModel]="currentUserAccount?.firstName"
(ngModelChange)="currentUserAccount ? currentUserAccount.firstName = $event : null"
placeholder="{{'FIRST_NAME_FORM.NEW_FIRST_NAME'| translate }}"
class="form-control"/>
</div>
<div [hidden]="firstName.valid">
<div *ngIf="firstName?.errors?.minlength" class="control-label">{{'FIRST_NAME_FORM.MIN_LENGTH'| translate}}</div>
</div>
</div>
<div class="form-group">
<button type="submit" class="btn btn-primary pull-right" [disabled]="buttonDisabled">{{'FIRST_NAME_FORM.SUBMIT'| translate}}</button>
<a [routerLink]="['/dashboard/useraccount']" class="btn btn-link pull-right text-right">{{'FORM_CANCEL' | translate}}</a>
</div>
</form>
Jedoch, wenn ich behaupte, dass ein ungültig-Formular -, Bemerke ich in der Konsole, in der das Attribut gültig von NgForm
ist true
...
updateFirstName(firstNameForm) {
console.log(firstNameForm);//the valid attribute of firstNameForm is true...
}
Kann jemand bitte lassen Sie mich wissen, warum dies der Fall ist?
- Ist es gewollt, dass
pattern
impattern_="FIRST_NAME_PATTERN"
hat eine zusätzliche_
? Was istformCtrl
?ng-class
sollte[ngClass]
- Ja, ich bin bei der Migration eines ng1 app und ich nehme an, diese
pattern_
undng-class
werden einfach ignoriert. - Ja, Sie sind einfach ignoriert.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Du tust Vorlagen Formulare. Bitte Lesen Sie diese einfache plunk
und dann den controller:
Wenn Sie verschieben möchten, um mehr komplexe dynamische Validierung dann wäre es besser zu konvertieren Model-driven Formen. Wie mit dieser plunk
Das ist das beabsichtigte Verhalten
Fand ich in dem change-log für die Version 2.0.0-alpha.46 (2015-11-11)
Dann die docs für
ControlGroup
undControlArray
aktualisiert werden sollSiehe auch https://github.com/angular/angular/issues/6504#issuecomment-171950667
Können Sie überprüfen, ob
firstNameForm.valid
istfalse
und dann Durchlaufen der Steuerung von Gruppen und Kontrollen für Fehler.Den
NgForm
Klasse hat dieerrors
Eigentum, weil es erbt vonAbstractControlDirective
aber die Fehler aus verschachtelten controls werden nicht erfasst, es.