یادگیری AngularJS با مثال – ساخت نوار منو

یادگیری AngularJS با مثال – ساخت نوار منو

این احتمالا وجود دارد که درباره فریم ورک AngularJS در اطراف شنیده باشید – فریم ورک جذابی که توسط گوگل توسعه داده می شود که می تواند ایده های شما را در رابطه با ساخت برنامه های مدرن وب تغییر دهد. چندین پست درباره این فریم ورک در بلاگ نوشته شده است ولی هنوز چیزی که یک توسعه دهنده برای آشنایی سریع با این فریم ورک را داشته باشد، نوشته نشده است. اما از امروز می خواهیم با مثال های کوتاه و سریع به نکاتی که به آنها در ساخت برنامه های ساده با آنگولار نیاز داریم آشنا شویم.

 

برای استفاده از AngularJS، نیاز است ابتدا کتابخانه آن را در فایل HTML خود اضافه کنیم، برای این کار از CDN می شود استفاده کرد. آن را به انتهای تگ body خود اضافه کنید.

 

AngularJS به شما این امکان را می دهد تا با استفاده از تعداد زیادی directives، عناصر HTML خود را به model متصل کنید. اینها ویژگی هایی هستند که با ng- شروع می شوند و در هر عناصر HTML قرار می گیرند. یکی از مهمترین ویژگی که باید در هر صفحه ای اضافه کنید (اگر مایل باشید آنگولار را در برنامه خود داشته باشید)، استفاده از ng-app است:

 

 

ng-app در عناصری مثل html، body، div اضافه می شود تا بقیه عناصر موجود در خود را به عنوان محدوده برنامه آنگولار شناسایی کند. وقتی صفحه بارگذاری می شود، آنگولار تمام عناصر فرزند در directive ها را ارزیابی می کند.

معرفی AngularJS

بطور کلی AngularJS فریم ورکی است که HTML (views) را با آبجکت های جاوا اسکریپت (models) متصل می کند. این بدان معناست که وقتی مدل های شما تغییر داده شوند، این بروزرسانی نیز در صفحه (views) بطور خودکار انجام می شود. در مقابل نیز وقتی یک مدل، با ورودی یک فیلد متن در ارتباط (bind) باشد، مقدار مدل نیز با تغییر فیلد ورودی بروزرسانی می شود. Angular تمام این کارها را مثل یک چسب انجام می دهد، بنابراین شما دیگر لازم نیست بطور دستی HTML خود را بروزرسانی کنید یا با jQuery به رویدادهایی (event) که اجرا می شوند گوش فرا دهید. در حقیقت ما در این مثال ها از هیچ jQuery استفاده نخواهیم کرد.

سریعترین روش برای وارد کردن Angular به پروژه خود، اضافه کردن CDN زیر در انتهای تگ <body> است. (قبل از اینگه تگ body بسته شود).

 

 

خوب به اندازه کافی با تئوری آنگولار آشنا شدیم، اجازه دهید با کدهای آن کار کنیم.

مثال: ساخت نوار منو

به عنوان اولین مثال، ما نوار منویی را خواهیم ساخت که منو انتخاب شده را نشان می دهد. در  این مثال تنها از directive های آنگولار استفاده شده است، که ساده ترین نوع ساخت برنامه با این فریم ورک است.

 

[button type=”success” size=”lg” link=”http://www.baboon.ir/uploads/angular-example1/index.html”] [fa type=”globe”] دمو [/button]

 

در این مثال و مثل هایی که در پست های آینده خواهیم دید، فرض شده است که کاربر آشنایی کافی با HTML و CSS دارد – هر کجا که لازم شده توضیح داده می شود. تمرکز ما بر روی Angular خواهد بود. برای راحتی، از Bootstrap برای چارچوب و ظاهر سایت استفاده خواهیم کرد.

 

اگر با npm آشنا هستید می توانید سورس Angular یا Bootstrap را با دستورات زیر در پروژه مثال خود ذخیره کنیم.

 

 

نگران نباشد اگر با npm آشنا نیستید می توانید CDN ها استفاده کنید. برای این کار می بایست از CDN زیر برای وارد کردن آنگولار به فایل HTML خود استفاده کنیم. لینک زیر قبل از اینکه تگ <body> بسته شود قرار دهید:

 

index.html

برای شروع ابتدا یک فایل index.html در پروژه خود ایجاد کرده و HTML های ساده زیر را به آن اضافه کنید:

 

 

همانطور که می دانیم برای راحتی در کار از سی اس اس های آماده Bootstrap استفاده کرده ایم، پس توجه داشته باشید که فایل css بوت استراپ را در داخل تگ <head> قرار داده ایم. و به دنبال آن یک فایل style.css ایجاد کرده ایم تا سی اس اس های سفارشی خود را درون آن بنویسیم. و همچنین AngularJS را در انتهای تگ <body> قرار داده ایم.

توجه داشته باشید که چطور از دایرکتیو ng-app در تگ body استفاده کرده ایم، این کار باعث می شود حوزه عملیات آنگولار تنها در تگ body باشد، اگر بخواهید از آنگلولار در کل سند استفاده کنید باید ng-app را در تگ html قرار دهید.

 

 

در تگ nav از ng-class که با متغیر active تعریف شده است استفاده کرده ایم، مقدار متغیر active با هر با کلیک بر روی منو ها تغییر می یابد. همانطور که مشاهده می کنید در  هر منو  از ng-click استفاده شده است، این دستور درست مثل رویداد onclick() در جاوا اسکریپت می باشد. کاربر با کلیک بر روی هر یک از منو ها، مقدار متغیر active را مناسب با نام منو تغییر می دهد، به عنوان مثال اگر بر روی منو projects کلیک شود، مقدار active نیز به مقدار projects تغییر داده می شود و همچنین منوی انتخاب شده برجسته می شود. از $event.preventDefault() برای این استفاده شده است تا با هر بار کلیک بر روی منو، از refresh شدن صفحه جلوگیری شود.

 

 

همانطور که حدس زده اید از تگ <p> برای نشان دادن نام منوی انتخاب شده استفاده شده است. دایرکتیو ng-init باعث می شود متغیر active را که تعریف کرده ایم را با مقدار home مقدار دهی اولیه کنیم. این بدان معناست که وقتی صفحه را بارگذاری می کنید، منوی Home بصورت پیشفرض انتخاب شده باشد:

ساخت منو در Angular.js

{{ active | uppercase }} نیز باعث می شود که نام منو انتخاب شده را چاپ کند.

 

اگر قبلا با یکی template engine script کار کرده باشید حتما با این نوع از سینتکس {{ var }} آشنایی دارید. وقتی فریم ورک با چنین نوشته ای روبرو می شود، آن را با مقدار متغیر جایگزین می کند. این عمل در هر بار که متغیر تغییر پیدا می کند تکرار می شود.

 

uppercase باعث می شود کلمات با حروف بزرگ چاپ شود.

 

style.css

برای اینکه ظاهر نوار منو خود را داشته باشیم css ساده زیر را به فایل style.css اضافه کنید:

 

 

توجه داشته باشید که بخش مهمی از css فوق که باعث می شود رنگ منو انتخاب شده تغییر پیدا کند، تکه سی اس اس زیر است:

 

 

خلاصه

در این آموزش قصد داریم با استفاده از مثال یک نوار منو را با استفاده از Angular.js و Bootstrap درست کنیم. این منو بصورتی است که با هر بار کلیک بر روی منو، نام منوی انتخابی چاپ می شود و همچنین منوی انتخاب شده برجسته می شود.


  • kianajoo

    درود…دوست عزیز…
    ترجمه کتاب node.js رو هم ادامه بده لطفا…
    من که چشام به مانیتور خشک شد…خیلی خوبه که دوباره دارین ادامه میدین…

  • احسان عزیزی

    سلام
    سلام
    حالا علیک سلام
    عالی بود
    دمت گرم

  • محمد

    You Are Back

  • حسین

    هنوز همه مطالب قبلی رو نخوندم، ولی منتظر جدیداش هستم 🙂

    • پاتریک

      خواهش می کنم 😉
      قسمت بعدی امشب یا فردا پست می کنم. 😉

  • mahsa

    aliyeeeeeeee..

  • mahsa

    chera edame in ghesmat va codhaye angular nist??

  • رضا

    من که با asp کار کرده بودم و انگولار نمی دونستم خیلی عالی بود