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

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

المنصة

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

الحساب

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

روابط

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

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

صُنع بـ في مصر

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

منهج Angular

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

كل اللغات
مدرسة البرمجة/منهج Angular /بناء وتطوير أول توجيه

بناء وتطوير أول توجيه

Attribute DirectiveCustom Directiveتطوير التوجيهاتAngular 22.1Directive

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

1
عنصر البناء البرمجيالاسم في كود TypeScriptدور العنصر في هيكل التوجيه
مزخرف الصنف (Decorator)@Directive()يُخبر أنجولر أن هذا الصنف عبارة عن توجيه ويحدد selector الخاص به
محدد الاستهداف (Selector)selector: '[appDirectiveName]'الاسم البرمجي الذي يُستخدم لاستدعاء التوجيه داخل قوالب الـ HTML كسمة
محفظ الحقن (DI Injection)inject(ElementRef)الحصول على مرجع مباشر لعنصر الـ DOM الذي تم تطبيق التوجيه عليه

الشرح

نواصل رحلتنا في الفصل الثامن من المنهاج الهندسي لأحدث إصدارات Angular 22.1 مع الدرس الثاني: بناء وتطوير أول توجيه سمة مخصص (Custom Attribute Directive). بعد أن تعرفنا على أنواع التوجيهات في الدرس السابق، سنقوم اليوم بالعملي وبناء أول توجيه سمة خاص بك (Custom Attribute Directive) لتعديل سلوك عناصر واجهة المستخدم وإضافة تفاعلات برمجية نظيفة وقابلة لإعادة الاستخدام.

تفصيل فلسفة وعمل توجيهات السمات

تصميم المحدد (Selector):

عند بناء توجيه سمة، يُفضل دائماً وضع اسم المحدد داخل أقواس مربعة (مثل [appCustomTooltip])، ليدل على أن هذا التوجيه يُستخدم كسمة مضافة لعناصر الـ HTML الموجودة مسبقاً.

التحكم بالخصائص عبر الحقن:

عبر دالة inject(ElementRef) الحديثة في Angular 22.1، يستطيع التوجيه الوصول فوراً إلى العنصر الحاضن وتعديل خصائصه البصرية أو البرمجية دون الحاجة لكتابة كود معقد داخل المكونات الرئيسية.

أمثلة برمجية: صنف التوجيه المخصص لتغيير لون الخلفية عند التحويم

المثال الأول: صنف التوجيه المخصص مع إضافة تفاعل بسيط

typescript
1import { Directive, ElementRef, HostListener, inject } from '@angular/core';
2
3@Directive({
4 selector: '[appHoverEffect]',
5 standalone: true
6})
7export class HoverEffectDirective {
8 private el = inject(ElementRef);
9
10 constructor() {
11 this.el.nativeElement.style.transition = 'background-color 0.3s ease';
12 }
13
14 // الاستجابة لحدث دخول مؤشر الفأرة
15 @HostListener('mouseenter') onMouseEnter() {
16 this.el.nativeElement.style.backgroundColor = '#0ea5e9';
17 this.el.nativeElement.style.color = '#ffffff';
18 }
19
20 // الاستجابة لحدث خروج مؤشر الفأرة
21 @HostListener('mouseleave') onMouseLeave() {
22 this.el.nativeElement.style.backgroundColor = '#1e293b';
23 this.el.nativeElement.style.color = '#38bdf8';
24 }
25}

أمثلة برمجية: استهلاك التوجيه المخصص داخل المكون

المثال الثاني: قالب المكون الذي يطبق التوجيه المطور

typescript
1import { Component } from '@angular/core';
2import { HoverEffectDirective } from './hover-effect.directive';
3
4@Component({
5 selector: 'app-custom-directive-demo',
6 standalone: true,
7 imports: [HoverEffectDirective],
8 template: `
9 <div class="container">
10 <h3>تطبيق توجيه السمة المخصص</h3>
11
12 <!-- عنصر يحمل التوجيه المطور ويتفاعل مع الفأرة -->
13 <div appHoverEffect class="card-box">
14 مرر مؤشر الفأرة فوق هذا العنصر لمشاهدة تأثير التوجيه المخصص!
15 </div>
16 </div>
17 `,
18 styles: [`
19 .container { background: #090d16; color: #fff; padding: 20px; border-radius: 10px; }
20 .card-box { background: #1e293b; color: #38bdf8; padding: 16px; border-radius: 8px; cursor: pointer; font-weight: bold; border: 1px solid #334155; }
21 `]
22})
23export class CustomDirectiveDemoComponent {}

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

  • —اجعل التوجيهات متخصصة ومستقلة تماماً!
  • —تصميم توجيهات السمات بحيث تؤدي وظيفة واحدة محددة (مثل تأثير بصري، تنسيق نص، أو تحقق) يرفع من كفاءة صيانة الكود ويسمح بإعادة استخدام التوجيه في مئات الأماكن داخل مشروع Angular 22.1 بسهولة تامة.

الدرس السابق

: ما هي التوجيهات وأنواعها في Angular

الدرس التالي

التعامل مع عناصر DOM مباشرة

نوفيل

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

المنصة

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

الحساب

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

روابط

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

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

صُنع بـ في مصر