loading...
طراحی وب- برنامه نویسی
برنامه نویس بازدید : 44 پنجشنبه 10 مرداد 1398 نظرات (0)

با مطالعه ۴ فصل گذشته به مباحث تخصصی مربوط به کامپوننت‌ها و دستورهای مقدماتی و کاربردی انگولار آشنا شدید. در این فصل قصد داریم شیرجه‌ای عمیق‌تر درون دستورهای انگولار بزنیم و شما را با نحوه‌ی ساخت دستورهای صفتی دلخواه بیشتر آشنا کنیم. با ما همراه باشید.

مقدمه

در فصل مربوط به دستورها، اطلاعات کلی در ارتباط با دستورهای (Directive) انگولار بدست آوردید و متوجه شدید که دستورهای موجود به دو دسته‌ی دستورهای صفتی یا Attribute و دستورهای ساختاری یا Structural تقسیم‌بندی می‌شوند. در ادامه مجددا تعریف هر یک از این نوع دستور را ارائه خواهیم داد:

دستورهای صفتی یا Attribute Directive: به دستورهایی گفته می‌شود که به عنوان یک صفت یا attribute در تگ‌های HTML مورد استفاده قرار می‌گیرند. مثلا دستور ngClass یک کلاس به تگ اضافه می‌کند و دخل و تصرفی در ساختار کلی صفحه ایجاد نخواهد کرد.

دستورهای ساختاری یا Structural Directive: به دستورهایی گفته می‌شود که به عنوان یک دستور ساختاری وارد عمل شده و تگ‌های HTML جدیدی به صفحه و قالب ما اضافه می‌کند. مانند دستور ngIf* که یک المان جدید را تولید و یا حذف می‌کند. به عبارت دیگر این نوع دستور در ساختار DOM تغییرات ایجاد خواهد کرد.

قبل از ورود به سایر مباحث موجود در این فصل از شما عزیزان خواهشمندیم فصل زیر را که حاوی دستورهای مقدماتی ساختاری و صفتی‌است مطالعه بفرمایید:

پس از مطالعه‌ی لینک فوق به ادامه‌ی این آموزش بپردازید.

یک مثال دیگر که در آن به صورت ترکیبی از دستورهای ngIf* و ngFor* و ngClass و همچنین ngStyle استفاده شده است، با یکدیگر بررسی خواهیم کرد. در این مثال از ارائه‌ی توضیحات مربوط به کدها خودداری کرده و تنها صورت مساله را مطرح می‌کنیم.

فرض کنید می‌خواهیم در یک صفحه اعداد زوج و فرد را به صورت مجرا نمایش دهیم. یعنی با کلیک روی یک دکمه مجموعه‌ی اعداد فرد نمایش داده شده که دارای استایل و کلاس خاص هستند. بنابراین در فایل app.component.html کدهای زیر را اعمال خواهیم کرد:

سپس در فایل app.component.ts یک سری ویژگی تعریف می‌کنیم:

در نهایت فایل app.component.css را نیز به صورت زیر ارائه خواهیم داد تا در قالب HTML تغییرات متناسب با دستور ngClass اعمال شود:

بسیار عالی! در صورتیکه از این مجموعه‌ی دستورات خروجی بگیرید باید با تصویر زیر مواجه شده باشید:

مثال دستورها انگولار

ساخت دستورهای صفتی دلخواه

خوشبختانه انگولار به عنوان فریم‌ورکی بسیار قدرتمند این قابلیت را برای ما فراهم می‌کند که دستورهای دلخواه خود را ایجاد کرده و از آنها متناسب با نوع ساختاری یا صفتی، استفاده کنیم.

برای ایجاد یک دستور باید ابتدا فایلی با پسوند directive.ts ایجاد کنیم. بنابراین یک پوشه به نام basic-highlight در مسیر اصلی ایجاد کرده و در نهایت دستورهای زیر را درون آن اعمال می‌کنیم:

همانطور که در این فایل ملاحظه می‌کنید یک کلاس به نام BasicHighlightDirective ایجاد کرده‌ایم که یک سازنده‌ی پیشفرض و یک ویژگی به نام elemetRef به صورت private دارد. در نظر داریم که این سازنده‌ی پیشفرض تنها دریافت ورود مورد استفاده قرار می‌گیرد. در نهایت در هوک ngOnInit المان HTML‌ای که در این دستور روی آن اعمال می‌شود با تغییر رنگ پس زمینه روبه‌رو شده و رنگ آن به سبز تغییر می‌کند.

نکته‌ی دیگری که قابل تامل است استفاده از یک مفسر به نام Directive@ در ابتدای برنامه می‌باشد که درون آن یک سلکتور به صورت صفتی ( با علامت [ ]) ایجاد شده است.

حال پس از اعمال تغییرات فوق باید این دستور را به فایل app.module.ts معرفی کنیم:

حال در ادامه برای اینکه بتوانیم از این دستور تولید شده استفاده کنیم باید درون فایل app.component.html یک تگ <p> ایجاد کرده و سپس دستور را به آن اعمال کنیم:

حال اگر صفحه را مجددا بارگذاری کنید با تصویر زیر روبه‌رو خواهید شد.

نحوه ساخت یک دستور صفتی در انگولار

چقدر خوب! شما توانستید یک دستور صفتی دلخواه ایجاد کرده و سپس آن را روی یک تگ خاص لحاظ کنید.

اما این راه قطعا بهترین راه برای تغییر دادن استایل یک صفحه و ایجاد دستور یا Directive دلخواه نیست. بلکه بهترین راه استفاده از کلاس Renderer2 در انگولار می‌باشد که در ادامه به معرفی آن می‌پردازیم.

در واقع اگر به صورت مستقیم یک المان native از DOM را مورد هدف قرار داده و استایل آن را تغییر دهیم ممکن است در برخی از مرورگرها دچار مشکل شویم بنابراین منطقی‌ترین راه استفاده از ابزار بسیار قدرتمند Renderer2 است.

کلاس Renderer2

برای روشن‌تر شدن مفهوم این کلاس با یک مثال شروع می‌کنیم. در ابتدا با استفاده از دستور زیر یک directive درون فولدر better-highlight ایجاد می‌کنیم:

سپس فایل better-highlight.directive.ts را باز کرده و دستورهای زیر را درون آن قرار می‌دهیم:

همانطور که ملاحظه می‌کنید برای دستور appBetterHighlight در ابتدا دو ویژگی درون سازنده به نام‌های elRef (برای دسترسی به المان HTML یا DOM) و renderer (جهت استفاده از کلاس Rendere2) تعریف کرده‌ایم.

سپس در هوک ngOnInit از کلاس Renderer2 و متد setStyle استفاده کرده و در نهایت مقدار آرگومان آن را به صورت زیر درج کرده‌ایم:

که آرگومان اول نشان‌دهنده نوع المان DOM، آرگومان دوم برابر صفت css و آرگومان سوم بیانگر مقدار css است.

در صورتیکه مثال فوق را به درستی انجام داده باشید با خروجی زیر روبه‌رو خواهید شد:

نحوه استفاده از کلاس Renderer2 در انگولار

بسیار عالی به شما تبریک می‌گوییم در این بخش توانستید به صورت استاندارد یک دستور صفتی را ایجاد کرده و مورد بررسی قرار دهید. در بخش بعدی به توضیح مفاهیم عمیق‌تری از دستورات پرداخته و شما را فضای جدیدی آشنا می‌کنیم. با ما همراه باشید.

توجه: دوستان عزیز آموزش ویدیویی انگولار 6 از مقدماتی تا پیشرفته به زبان فارسی را می‌توانید با کلیک روی اینجا یاد بگیرید.

دوره آموزش انگولار به زبان فارسی + پروژه ساخت فروشگاه اینترنتی

 

منبع: روکسو

ارسال نظر برای این مطلب

کد امنیتی رفرش
اطلاعات کاربری
  • فراموشی رمز عبور؟
  • آرشیو
    آمار سایت
  • کل مطالب : 346
  • کل نظرات : 0
  • افراد آنلاین : 2
  • تعداد اعضا : 0
  • آی پی امروز : 9
  • آی پی دیروز : 17
  • بازدید امروز : 25
  • باردید دیروز : 21
  • گوگل امروز : 2
  • گوگل دیروز : 5
  • بازدید هفته : 99
  • بازدید ماه : 464
  • بازدید سال : 6,973
  • بازدید کلی : 35,208