Angular vereinfacht die Erstellung und Validierung der Form von Form mit zwei Ansätzen: templatgetriebene und reaktive Formen. Vorlagengesteuerte Formen sind ideal für schnelle, einfache Formen, während reaktive Formen eine bessere Kontrolle für komplexe Szenarien bieten. Dieser Artikel zeigt beide Methoden mit einem praktischen Beispiel.
Schlüsselkonzepte:
required
, minlength
) direkt in Vorlagen (vorlagengetrieben) oder innerhalb FormControl
Instantiation (reaktive Formulare). ngSubmit
Binden Sie das Ereignis Voraussetzungen:
Ein grundlegendes Verständnis von Angular ist hilfreich. Obwohl es nicht streng erforderlich ist, verbessert die Vertrautheit mit JavaScript und dem Winkelgerüst Ihr Verständnis. Betrachten Sie für einen tieferen Eintauchen in Angular Ressourcen wie die SitePoint -Artikelreihe zum Erstellen einer CRUD -App mit Angular.
Einrichten:
Dieses Tutorial verwendet Bootstrap zum Styling. So integrieren Sie es:
stafstrap installieren: npm install bootstrap@next
im Verzeichnis Ihres Projekts reiten
Konfigurieren Sie Winkel -Cli: angular.json
In Ihrer
"styles": [ "../node_modules/bootstrap/dist/css/bootstrap.css" ]
importieren formsmodule: app.module.ts
in Ihrem FormsModule
import @angular/forms
aus
import { FormsModule } from '@angular/forms'; @NgModule({ imports: [ BrowserModule, FormsModule, // ... other imports ] })
templatgetriebene Formulare:
Beginnen Sie für ein schnelles Unternehmensregistrierungsformular mit einem grundlegenden Formular -Tag:
<form #companyForm="ngForm" (ngSubmit)="submitCompany(companyForm.value)"> <!-- Form fields here --> <button class="btn btn-primary" type="submit" [disabled]="!companyForm.valid">Submit</button> </form>
ngForm
Beachten Sie die Verwendung von ngSubmit
zum Erstellen einer Template -Referenzvariablen und [disabled]
, um die Formulareinreichung an eine Komponentenmethode zu binden. Das Attribut
Formulareingaben und Validierung erstellen:
für ein Feld in der Firmennamen Eingabe: <🎜>
"styles": [ "../node_modules/bootstrap/dist/css/bootstrap.css" ]
Dies zeigt ngModel
für die Zwei-Wege-Datenbindung, required
und minlength
Validatoren und die bedingte Fehleranzeige basierend auf companyName.touched
und companyName.errors
.
Ein ähnlicher Ansatz gilt für andere Formularfelder, wie z. B. ein Dropdown für die Industrie. Der Typscript der Komponente würde die Branchenoptionen definieren.
Komponenten submitCompany
Methode:
import { FormsModule } from '@angular/forms'; @NgModule({ imports: [ BrowserModule, FormsModule, // ... other imports ] })
reaktive Formen:
Für ein komplexeres Formular für die Registrierung von Kontos liefern reaktive Formulare eine größere Kontrolle.
reactiveFormsModule importieren: in Ihrem app.module.ts
, importieren Sie ReactiveFormsModule
aus @angular/forms
.
Formularsteuerung in Komponente erstellen:
<form #companyForm="ngForm" (ngSubmit)="submitCompany(companyForm.value)"> <!-- Form fields here --> <button class="btn btn-primary" type="submit" [disabled]="!companyForm.valid">Submit</button> </form>
Form in Vorlage:
<input type="text" class="form-control" name="companyName" ngModel #companyName="ngModel" required minlength="3"> <div *ngIf="companyName.touched && companyName.errors"> <div class="alert alert-danger" *ngIf="companyName.errors.required">Company name is required</div> <div class="alert alert-danger" *ngIf="companyName.errors.minlength">Company name must be at least {{ companyName.errors.minlength.requiredLength }} characters long</div> </div>
Formulationsfelder:
submitCompany(formData) { console.log(formData); // Process form data alert('Form submitted!'); // Reset the form (optional) }
Fehlerbehandlung ähnelt den vorlagengesteuerten Formularen, aber mit accountForm.get('email').errors
usw. kann eine asynchrone Validierung mit benutzerdefinierten Validatoren und Diensten hinzugefügt werden.
Denken Sie daran, die Code -Snippets so anzupassen, dass sie Ihren spezifischen Formularfeldern und Anforderungen entsprechen. Diese detaillierte Erklärung bietet eine solide Grundlage, um sowohl einfache als auch komplexe Formen in Angular zu bauen.
Das obige ist der detaillierte Inhalt vonSchnell einfache, aber leistungsstarke Winkelformen erzeugen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!