loading...
طراحی وب- برنامه نویسی
برنامه نویس بازدید : 32 چهارشنبه 09 مرداد 1398 نظرات (0)

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

ادامه مثال فصل گذشته

برای مطالعه‌ی این بخش حتما و حتما فصل گذشته را بررسی بفرمایید.

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

حال می‌خواهیم provider های موجود در کلاس new-account.component.ts و account.component.ts را حذف کرده و به فایل app.module.ts انتقال دهیم تا سرویس‌ها درون تمام کامپوننت‌ها در دسترس باشند. بنابراین درون فایل app.module.ts‌ تغییرات زیر را خواهیم داشت:

حال می‌خواهیم از سرویس LoggingService درون سرویس AccountsService استفاده کنیم. به عبارت دیگر می‌خواهیم یک سرویس را درون سرویس دیگری تزریق کرده و مورد استفاده قرار دهیم.

بنابراین دستورهای this.loggingService را از هر دو کامپوننت account و new-account‌ حذف می‌کنیم. پس فایل new-account.component.ts‌ به صورت زیر خواهد بود:

و همچنین فایل account.component.ts نیز به صورت زیر تغییر می‌کند:

خب حالا نوبت به آن رسیده است که سرویس LoggingService را به AccountsService تزریق کنیم.

بنابراین فایل AccountsService را باز کرده و دستورات زیر را درون آن قرار می‌دهیم که مشابه استفاده از یک سرویس درون یک سازنده‌ی پیش‌فرض و در نهایت فراخوانی متد مربوطه است:

در صورتیکه نرم‌افزار خود را در آدرس http://localhost:4200 تست کنید درون کنسول یک خطا مشاهده خواهید کرد که همه‌ی پارامترها درون این سرویس استفاده نشده است. حال برای برطرف این خطا باید یک مفسر و دکوراتور به نام Injectable@‌ استفاده خواهیم کرد.

مفسر Injectable@ در انگولار

مفسر یا دکوراتور Injectable‌ برای تزریق یک سرویس درون دیگری مورد استفاده قرار می‌گیرد. بنابراین فایل accounts.service.ts را باز کرده و تغییرات را به صورت زیر اعمال خواهیم کرد:

بسیار عالی خطا برطرف شد و هم اکنون تمام قسمت‌ها به صورت کامل در دسترس می‌باشد.

برای بهینه‌ کردن یک نرم‌افزار آخرین مرحله را انجام می‌دهیم. اگر فایل app.component.html را باز کنید ملاحظه خواهید کرد که درون هر دو کامپوننت app-new-account و app-account دو event به مرحله‌ی بالاتر یعنی کامپوننت مادر ارسال می‌شوند.

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

سپس یک متد برای پاسخ رویدادها درون accounts.service.ts ایجاد می‌کنیم:

در نتیجه برای استفاده از این ویژگی فایل account.component.ts را باز کرده و ویرایش زیر را انجام می‌دهیم:

بسیار عالی با اینکار در واقع تغییرات به سرویس accounts.services.ts توسط یک رویداد یا فشردن یک دکمه اتفاق می‌افتد.

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

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

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

 

منبعک روکسو

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

کد امنیتی رفرش
اطلاعات کاربری
  • فراموشی رمز عبور؟
  • آرشیو
    آمار سایت
  • کل مطالب : 346
  • کل نظرات : 0
  • افراد آنلاین : 1
  • تعداد اعضا : 0
  • آی پی امروز : 16
  • آی پی دیروز : 17
  • بازدید امروز : 88
  • باردید دیروز : 21
  • گوگل امروز : 2
  • گوگل دیروز : 5
  • بازدید هفته : 162
  • بازدید ماه : 527
  • بازدید سال : 7,036
  • بازدید کلی : 35,271