نوفيل
الرئيسيةالكورساتالتحديات⚔️ المبارزاتالمقالاتالأدواتتغريداتالمجتمع
دخولابدأ مجاناً
الرئيسيةالكورساتالتحديات⚔️ المبارزاتالمقالاتالأدواتتغريداتالمجتمع
نوفيل

منصة تعليم البرمجة الأولى بالعربي. تعلم من الصفر حتى الاحتراف مع كورسات احترافية وتحديات ذكاء اصطناعي.

المنصة

  • الكورسات
  • التحديات
  • المقالات
  • الأدوات

الحساب

  • إنشاء حساب
  • تسجيل الدخول
  • لوحة التحكم
  • الملف الشخصي

روابط

  • سياسة الخصوصية
  • شروط الاستخدام
  • عن نوفيل
  • تواصل معنا

© 2026 نوفيل. جميع الحقوق محفوظة.

صُنع بـ في مصر

نوفيل
الرئيسيةالكورساتالتحديات⚔️ المبارزاتالمقالاتالأدواتتغريداتالمجتمع
دخولابدأ مجاناً
الرئيسيةالكورساتالتحديات⚔️ المبارزاتالمقالاتالأدواتتغريداتالمجتمع
AN

منهج Angular

دليل مرجعي شامل

كل اللغات
مدرسة البرمجة/منهج Angular /استبدال Output بالإشارات الحديثة

استبدال Output بالإشارات الحديثة

المخرجات بالإشاراتsignals-based outputsدالة output الحديثةإرسال الأحداث للأعلىAngular 22.1

جدول مرجعي سريع

1
معيار المقارنة البرمجيةالطريقة التقليدية (EventEmitter Outputs)مخرجات الإشارات الحديثة (Signals-based Outputs)
الاعتمادية الهندسيةتعتمد على فئة EventEmitter التقليدية واستيراد مكتبات متعددةتعتمد كلياً على دالة output المعيارية الجديدة
طريقة إطلاق ونقل الأحداث للأعلىاستخدام دالة .emit() لنقل البياناتاستدعاء المخرج مباشرة كدالة برمجية مثل دالة عادية
التوافق مع بنية Signals العامةمنفصلة جزئياً وتتطلب إدارة إضافية لربطها بالحالات التفاعليةمتناغمة تماماً ومصممة خصيصاً لتتكامل مع عمارة الإشارات في أنجولر
كود التعريف داخل صنف المكونnotify = new EventEmitter<string>();notify = output<string>();

الشرح

نصحح مسار الدرس السابع لنركز بشكل كامل ودقيق على المخرجات باستخدام الإشارات الحديثة (Signals-based Outputs) في إصدار Angular 22.1. في الهندسة البرمجية الحديثة لأنجولر، تم دمج المخرجات (Outputs) بصورة كليّة مع نظام الإشارات لتوفير طريقة أكثر توحيداً وسلاسة لإرسال البيانات والأحداث نحو الأعلى من المكونات الفرعية إلى المكونات الأب، مستغنين عن الأنماط المعقدة القديمة. ومثل الدروس السابقة، سنحافظ على تنوع الأكواد لتشمل ملفات الـ TypeScript، وقوالب الـ HTML، وملفات التنسيق CSS

تفصيل فلسفة وعمل مخرجات الإشارات الحديثة

الاستدعاء المباشر كدالة (output API):

عند استخدام دالة output<T>() الحديثة، فإنك تُعرّف مخرجاً قادراً على إرسال البيانات للأعلى بأمان تام وبدون الحاجة لإنشاء كائنات EventEmitter ضخمة. يتم إطلاق الحدث عبر استدعاء المخرج كدالة برمجية مباشرة بالقيم المطلوبة (this.myOutput(value)).

التكامل الانسيابي مع المكونات الأب:

تتيح هذه المخرجات للمكونات الأب استقبال الأحداث عبر ربط القوالب بالطريقة المعتادة ((myOutput)="handler($event)")، مع ضمان مطابقة تكامل الأنواع (Type Safety) ومنع الأخطاء البرمجية الخفية في وقت الترجمة.

أمثلة برمجية: صنف الـ TypeScript للمكون الفرعي

المثال الأول: صنف المكون الفرعي الذي يطلق البيانات للأعلى باستخدام المخرجات الحديثة

typescript
1import { Component, output } from '@angular/core';
2
3@Component({
4 selector: 'app-user-input-form',
5 standalone: true,
6 templateUrl: './user-input-form.component.html',
7 styleUrl: './user-input-form.component.css'
8})
9export class UserInputFormComponent {
10 // تعريف مخرج يعتمد على الإشارات الحديثة لإرسال نص للأعلى
11 formSubmitted = output<string>();
12
13 submitData(value: string) {
14 if (value.trim()) {
15 // إرسال البيانات عبر استدعاء المخرج كدالة مباشرة
16 this.formSubmitted(value);
17 }
18 }
19}

أمثلة برمجية: قالب العرض HTML الخاص بالمكون الفرعي

المثال الثاني: قالب HTML للمكون الفرعي (تنوع في الأكواد)

html
1<div class="form-card">
2 <h4>نموذج إدخال البيانات الفرعي</h4>
3 <input #textInput type="text" placeholder="اكتب النص هنا للإرسال للأعلى..." />
4 <button (click)="submitData(textInput.value)">إرسال البيانات</button>
5</div>

أمثلة برمجية: استقبال البيانات في المكون الأب

المثال الثالث:صنف المكون الأب الذي يستمع لمخرجات الإشارات القادمة من الأسفل

typescript
1import { Component, signal } from '@angular/core';
2import { UserInputFormComponent } from './user-input-form.component';
3
4@Component({
5 selector: 'app-workspace-parent',
6 standalone: true,
7 imports: [UserInputFormComponent],
8 template: `
9 <div class="workspace">
10 <h3>مساحة العمل الرئيسية (الأب)</h3>
11 <p>الرسالة الواردة من النموذج الفرعي: <strong>{{ latestMessage() }}</strong></p>
12
13 <!-- استقبال الحدث القادم من المكون الفرعي -->
14 <app-user-input-form (formSubmitted)="handleFormSubmission($event)"></app-user-input-form>
15 </div>
16 `
17})
18export class WorkspaceParentComponent {
19 latestMessage = signal('لم يتم إرسال أي بيانات بعد');
20
21 handleFormSubmission(message: string) {
22 // تحديث الإشارة بناءً على البيانات القادمة من المخرجات الحديثة
23 this.latestMessage.set(message);
24 }
25}

نصائح احترافية

  • —اعتمد بشكل كامل على دالة output() الحديثة بدلاً من المنهجيات القديمة!
  • —هذا يضمن لك توحيد أسلوب كتابة الكود في مشروع Angular 22.1، ويجعل التعامل مع إرسال الأحداث للأعلى متوافقاً تماماً وبدون أي تعقيدات مع عمارة الإشارات العامة للتطبيق.

الدرس السابق

ارسال البيانات والأحداث للأعلى باستخدام المخرجات

الدرس التالي

تمرير المراجع والبيانات باستخدام خاصية Model في الإشارات

نوفيل

منصة تعليم البرمجة الأولى بالعربي. تعلم من الصفر حتى الاحتراف مع كورسات احترافية وتحديات ذكاء اصطناعي.

المنصة

  • الكورسات
  • التحديات
  • المقالات
  • الأدوات

الحساب

  • إنشاء حساب
  • تسجيل الدخول
  • لوحة التحكم
  • الملف الشخصي

روابط

  • سياسة الخصوصية
  • شروط الاستخدام
  • عن نوفيل
  • تواصل معنا

© 2026 نوفيل. جميع الحقوق محفوظة.

صُنع بـ في مصر