0Pricing
Angular Academy · درس

مدخلات الإشارات model()

أنشئوا روابط ثنائية الاتجاه باستخدام إشارات model

مدخلات الإشارات model() درس مجاني في Angular Academy على CoddyKit. هذا هو الدرس 3 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Angular Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Angular Academy 4 دروس في المجموع.

الإشارات تلتقي بالربط ثنائي الاتجاه

يوفّر Angular الحديث الدالة model()، وهي طريقة قائمة على الإشارات لإنشاء مدخلات قابلة للربط ثنائي الاتجاه دون أزواج الإدخال والإخراج اليدوية.

تعريف مدخل model

استدعِ model() لإنشاء إشارة قابلة للكتابة يمكن للأب ربطها ثنائي الاتجاه.

import { Component, model } from "@angular/core";

@Component({ selector: "app-toggle", template: "" })
export class ToggleComponent {
  checked = model(false);
}

الربط من مكوّن أب

يستخدم المكوّن الأب صيغة الموزة داخل الصندوق مع اسم model، تمامًا كما هو الحال مع ngModel.

<app-toggle [(checked)]="isOn"></app-toggle>

// parent
isOn = signal(true);

قراءة قيمة model

إنّ model إشارة، لذا تُقرأ باستدعائها كما لو كانت دالة.

export class ToggleComponent {
  checked = model(false);
  describe() {
    return this.checked() ? "on" : "off";
  }
}

الكتابة إلى model

حدّث model باستخدام set أو update. وينتقل التغيير تلقائيًا إلى المكوّن الأب.

toggle() {
  this.checked.update(c => !c);
}

// or
turnOn() {
  this.checked.set(true);
}

مدخلات model المطلوبة

استخدم model.required() عندما يكون على المكوّن الأب توفير قيمة.

import { model } from "@angular/core";

export class FieldComponent {
  value = model.required<string>();
}

استخدام model في القالب

اربط إشارة model مباشرةً في قالب المكوّن نفسه؛ إذ يمنحك استدعاؤها القيمة الحالية.

@Component({
  selector: "app-toggle",
  template: "<button (click)='flip()'>{{ checked() }}</button>"
})
export class ToggleComponent {
  checked = model(false);
  flip() { this.checked.update(v => !v); }
}

لا حاجة إلى إخراج يدوي

مع model() لا تعرّف @Output منفصلًا. إذ يوصّل Angular حدث التغيير نيابةً عنك باستخدام الاسم المتبوع بـ Change وفقًا للاتفاقية.

model في مقابل input

تكون input() العادية للقراءة فقط داخل المكوّن، بينما تكون model() قابلة للكتابة وتدعم الربط ثنائي الاتجاه مع المكوّن الأب.

// read-only:
label = input("");

// two-way writable:
value = model("");

عداد باستخدام model

إليك عدادًا مكتفيًا ذاتيًا تبقى قيمته متزامنة مع المكوّن الأب.

@Component({
  selector: "app-counter",
  template: "<button (click)='inc()'>{{ count() }}</button>"
})
export class CounterComponent {
  count = model(0);
  inc() { this.count.update(c => c + 1); }
}

متى تستخدم model

استخدم model() عندما يمتلك المكوّن الابن قيمةً يريد المكوّن الأب أيضًا قراءتها وتحديثها، مثل عناصر التحكم المخصصة في النماذج والمبدلات وأشرطة التمرير.

تحقّق سريع

اختبر مدى فهمك لمدخلات الإشارات باستخدام model.

مراجعة

تنشئ الدالة model() إشارة قابلة للكتابة تدعم الربط ثنائي الاتجاه دون زوج إدخال/إخراج يدوي. اقرأها باستدعائها، واكتب باستخدام set أو update، واربطها من المكوّن الأب باستخدام [(name)].

الأسئلة الشائعة

هل درس «مدخلات الإشارات model()» مجاني؟

نعم — نص درس «مدخلات الإشارات model()» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Angular Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Angular Academy 4 دروس في المجموع.

ماذا ستتعلم في «مدخلات الإشارات model()»؟

أنشئوا روابط ثنائية الاتجاه باستخدام إشارات model تتمرن على Angular Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ Angular Academy؟

لا تُشترط خبرة سابقة. Angular Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 3 من أصل 4.

كم من الوقت يستغرق درس «مدخلات الإشارات model()»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس Angular Academy هذا؟

نعم. كل درس في Angular Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. مراجعة ربط الخصائص والأحداث
  2. الربط ثنائي الاتجاه باستخدام ngModel
  3. مدخلات الإشارات model()
  4. خصائص مخصّصة قابلة للربط ثنائي الاتجاه
← العودة إلى Angular Academy