Formlarınızı tamamen şablona güvenmek yerine programatik olarak yönetmek istediğinizde, reaktif formlar çözümdür.
NOTE: Detaylı kılavuzda reaktif formlar hakkında daha fazla bilgi edinin.
Bu aktivitede, reaktif formları nasıl kuracağınızı öğreneceksiniz.
-
ReactiveFormsmodülünü içe aktarınapp.tsdosyasında,ReactiveFormsModule'ü@angular/formspaketinden içe aktarın ve bileşeninimportsdizisine ekleyin.import { ReactiveFormsModule } from '@angular/forms'; @Component({ selector: 'app-root', template: ` <form> <label>Name <input type="text" /> </label> <label>Email <input type="email" /> </label> <button type="submit">Submit</button> </form> `, imports: [ReactiveFormsModule], }) -
FormControl'lar ile
FormGroupnesnesini oluşturunReaktif formlar, form kontrollerini (örneğin giriş alanları) temsil etmek için
FormControlsınıfını kullanır. Angular, form kontrollerini geliştiriciler için büyük formları daha kolay yönetmeyi sağlayan yardımcı bir nesne olarak gruplamak içinFormGroupsınıfını sağlar.FormControlveFormGroup'u@angular/formsiçe aktarımına ekleyin, böylece her form içinnameveemailözelliklerini FormControl olarak içeren bir FormGroup oluşturabilirsiniz.import {ReactiveFormsModule, FormControl, FormGroup } from '@angular/forms'; ... export class App { profileForm = new FormGroup({ name: new FormControl(''), email: new FormControl(''), }); } -
FormGroup ve FormControl'ları forma bağlayın
Her
FormGroup,[formGroup]direktifi kullanılarak bir forma bağlanmalıdır.Ek olarak, her
FormControl,formControlNamedirektifi ile bağlanabilir ve ilgili özelliğe atanabilir. Şablonu aşağıdaki form koduyla güncelleyin:<form [formGroup]="profileForm"> <label> Name <input type="text" formControlName="name" /> </label> <label> Email <input type="email" formControlName="email" /> </label> <button type="submit">Submit</button> </form> -
Form güncellemesini yönetin
FormGroup'tan verilere erişmek istediğinizde, bunuFormGroup'un value özelliğine erişerek yapabilirsiniz. Form değerlerini görüntülemek içintemplate'i güncelleyin:... <h2>Profile Form</h2> <p>Name: {{ profileForm.value.name }}</p> <p>Email: {{ profileForm.value.email }}</p> -
FormGroup değerlerine erişin
Bileşen sınıfına, daha sonra form gönderimini işlemek için kullanacağınız
handleSubmitadında yeni bir metot ekleyin. Bu metot formdan gelen değerleri gösterecektir, FormGroup'tan değerlere erişebilirsiniz.Bileşen sınıfında, form gönderimini işlemek için
handleSubmit()metodunu ekleyin.handleSubmit() { alert( this.profileForm.value.name + ' | ' + this.profileForm.value.email ); } -
Forma
ngSubmitekleyinForm değerlerine erişiminiz var, şimdi gönderim olayını işleme ve
handleSubmitmetodunu kullanma zamanı. Angular'ın bu amaca özelngSubmitadında bir olay işleyicisi vardır. Form gönderildiğindehandleSubmitmetodunu çağırmak için form elementini güncelleyin.<form [formGroup]="profileForm" (ngSubmit)="handleSubmit()"></form>
Ve işte böylece, Angular'da reaktif formlarla nasıl çalışılacağını biliyorsunuz.
Bu aktivitede harika iş çıkardınız. Form doğrulamayı öğrenmek için devam edin.