العودة إلى الدورة

النماذج التفاعلية (RF) الإعداد و FormControl

مطور Angular الشامل: من الصفر إلى الاحتراف

45. النماذج التفاعلية (RF) الإعداد و FormControl

توفر النماذج التفاعلية (Reactive Forms) نهجاً يعتمد على النموذج (model-driven) حيث يتم تحديد هيكل النموذج والتحقق من صحته بشكل صريح في فئة المكون، مما يوفر تحكماً أكبر وقابلية للتوسع وقابلية للاختبار.

1. استيراد ReactiveFormsModule

تأكد من استيراد هذه الوحدة في AppModule أو وحدة الميزات الخاصة بك.

2. استخدام FormControl

FormControl هو اللبنة الأساسية للنماذج التفاعلية. يمثل حقلاً واحداً للإدخال وحالته (القيمة، الصلاحية).

إنشاء مثيلات عناصر التحكم

نقوم عادة بإنشاء مثيلات عناصر التحكم في مُنشئ المكون أو ngOnInit.

typescript import { FormControl } from '@angular/forms';

export class ReactiveSetupComponent implements OnInit { // 1. الإعلان عن مثيل FormControl usernameControl: FormControl | null = null;

ngOnInit(): void { // 2. إنشاء مثيل عنصر التحكم: القيمة الأولية، مصفوفة أدوات التحقق this.usernameControl = new FormControl('Default Name', Validators.required); } }

3. ربط عنصر التحكم بالقالب

نربط مثيل FormControl للمكون بإدخال HTML باستخدام ربط الخاصية [formControl].

html

<input type="text" [formControl]="usernameControl" id="username">

Is Valid: {{ usernameControl.valid }}

التغييرات التفاعلية (Observables)

نظراً لأن النماذج التفاعلية تعتمد على النموذج، يمكننا الاشتراك في التغييرات على عنصر التحكم، والتعامل مع بيانات النموذج كتيار مستمر (Observable).

typescript ngOnInit(): void { // ... instantiation this.usernameControl.valueChanges.subscribe(newValue => { console.log('Username changed to:', newValue); }); }