به طور کلی برنامه نویسی Modular در javascript یکی از pattern های خوب برنامه نویسی است. مطالعه این pattern بدون در نظر گرفتن استفاده آن در AngularJs بسیار مفید است. برای مطالعه بیشتر این pattern به اینجا مراجعه کنید.

در برنامه مثالی که در سلام AngularJs مطرح کردم همان طور که دیدید function ای که به عنوان controller استفاده کرده بودیم در هیچ Module ای قرار نداشت و اصطلاحا در global scope بود. global scope بودن به طور ساده و خلاصه یعنی این که این function یا متغیر یا هر چیزی که باشد از تمام نقاط برنامه قابل دسترسی است.

مثال سلام AngularJs

JS Binاین نحوه کد نویسی در javascript یک روش بد برنامه نویسی یا anti pattern  است. راه حلی که AngularJs برای برنامه نویسی بهتر و مدیریت بهتر controller ها و دیگر فاکتورها دارد module است. نحوه تعریف یک module به صورت زیر است  

این متد اصطلاحا متد setter است و کارش ایجاد کردن یک module در برنامه ما است. برای دسترسی به یک module از متد getter همین api استفاده می شود.

 با دسترسی به شی  یک module امکان ایجاد controller و service و directive و دیگر کامپوننت ها با استفاده از دستورات خاص خودشان، بوجود خواهد آمد. پارامتر ورودی اول دستور setter مربوط به ایجاد یک module نام module مورد نظر ما است. که به صورت camel case نیز خواهد بود. پارامتر دوم ورودی دستور setter مربوط به ایجاد یک module لیستی از module ها مورد نیاز این module است که injector موجود در AngularJs قبل از load شدن module ما آن module ها را load کرده و آماده استفاده می کند. با استفاده از امکان module مربوط به AngularJs، تکه کرد برنامه ما به صورت زیر تغییر می کند. Module In AngularJs

نتیجه کد جدید با کد قبلی تفاوتی ندارد ولی استفاده از امکان module تغییراتی به کد مثال جدید ما داده است.

اول: در ng-app باید نام module ای که میخواهیم load  و استفاده شود را ذکر کنیم.

دوم: از دستور controller که روی شی  module تعریف شده است برای ایجاد controller استفاده کرده ام. که پارامتر اول آن نام controller و پارامتر دوم آن function بی نام مربوط به controller است.

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *