سرویس ها (Services) در انگولار 7 – آموزش انگولار 7

  • شنبه ۲۶ مرداد ۱۳۹۸
  • بازدید ۱,۶۵۸ نفر

تصویر angular7-services_6621 سرویس ها (Services) در انگولار 7 - آموزش انگولار 7

سرویس ها (Services) در انگولار 7

در این بخش از آموزش فریم ورک انگولار 7 به مبحث سرویس ها (Services) در انگولار 7 می پردازیم. گاهی اوقات ممکن است بخواهید بخشی از کدهای پروژه در همه جای آن در دسترس باشد. سرویس ها برای رسیدن به این هدف به ما کمک می کنند. با استفاده از سرویس ها می توایند به متدها و پراپرتی های موجود در کامپوننت های مختلف در همه جای پروژه دسترسی داشته باشید.

به منظور ایجاد یک سرویس باید از خط فرمان و دستور زیر استفاده کنید:

مثال:

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

تصویر angular7-services_6621_1 سرویس ها (Services) در انگولار 7 - آموزش انگولار 7

دو فایلی که در انتهای تصویر مشاهده می کنید (myservice.service.specs.ts و myservice.service.ts) مربوط به سرویس جدیدی است که در بالا ایجاد شد.

محتوای فایل myservice.service.ts:

در کد فوق ماژول Injectable از angular/core وارد شده و شامل یک متد با نام @Injectable و یک کلاس با نام MyserviceService است. تابع مربوط به سرویس در این کلاس ایجاد خواهد شد. قبل از استفاده از سرویس ایجاد شده باید آن را به فایل app.module.ts اضافه کنیم.

مانند نمونه زیر:

در کد فوق سرویس ایجاد شده را با استفاده از نام کلاس آن import کرده و در MyserviceService قرار داده ایم. سپس آن را به بخش providers اضافه کرده ایم. حال در کلاس مربوط به سرویس ایجاد شده، یک تابع برای نمایش تاریخ روز جاری ایجاد می کنیم.

در کد فوق یک تابع با نام showTodayDate که یک نمونه از کلاس Date باز می گرداند را ایجاد کرده ایم. حال برای دسترسی به این تابع در سایر کامپوننت ها می توانید به صورت زیر عمل کنید.

محتوای فایل app.component.ts:

برای دسترسی به اجزای سرویس مورد نظر باید آن را import کنید. تابع ngOnInit به صورت پیشفرض در زمان ایجاد شدن کامپوننت فراخوانی می شود و تاریخ را با استفاده از تابع showTodayDate می گیرد و در متغیر todayDate قرار می دهد. حال به راحتی می توانیم آن را در فایل html نمایش دهیم:

استفاده از سرویس در کامپوننت new-cmp که در بخش های قبلی ایجاد کردیم:

همانطور که در بالا گفته شد، برای دسترسی به متدها و پراپرتی های سرویس باید ابتدا آن را import کنیم.

کد مربوط به فایل new-cmp.component.html:

خروجی برنامه:

تصویر angular7-services_6621_2 سرویس ها (Services) در انگولار 7 - آموزش انگولار 7

اگر شما پراپرتی موجود در سرویس را در هر کدام از کامپوننت ها تغییر دهید، نتیجه کل کامپوننت ها اعمال می شود. برای مثال یک متغیر در فایل myservice.service.ts ایجاد می کنیم.

مانند نمونه زیر:

حال از این متغیر به شکل زیر در کامپوننت اصلی برنامه استفاده می کنیم:

همانطور که مشاهده می کنید، مقدار متغیر ایجاد شده را با استفاده از console.log در کنسول می نویسیم. سپس مقدار آن متغیر را تغییر می دهیم.  حال اگر این از متغیر در کامپوننت new-cmp استفاده کنیم، مقدار آن برابر با “component created” خواهد بود.

در این کامپوننت مقدار متغیر مربوط به سرویس تغییر نمی کند و فقط مقدار آن در newcomponentproperty قرار داده شده است. تصویر زیر خروجی برنامه و مواردی که در کنسول چاپ شده اند را نشان می دهد:

تصویر angular7-services_6621_3 سرویس ها (Services) در انگولار 7 - آموزش انگولار 7

در زیر می توانید محتوای فایل های app.component.html و new-cmp.component.html را مشاهده کنید:

فایل app.component.html:

فایل new-cmp.component.html:

ثبت نظر
ریفریش کنید!
نظرات کاربران (۰ مورد)

هیچ نظری ثبت نشده است