آموزش AngularJS قسمت سوم کار با Directive ها در AngularJs
آموزش AngularJS قسمت سوم کار با Directive ها در AngularJs
در قسمت های قبلی نحوه استفاده و نصب AngularJS و همچنین Expression ها را توضیح دادیم. در این قسمت به مبحث Directive ها در AngularJs می پردازیم.
انواع Directive ها در AngularJs
- ng-app
- ng-bind
- ng-click
- ng-controller
- ng-disabled
- ng-hide
- ng-include
- ng-init
- ng-model
- ng-repeat
- ng-show
دایرکتیو ng-app
این دایرکتیو مشخص می کند که سایت ما یا صفحه در حال نمایش یک (SPA (Single Page Application است.
در مثال زیر ما تگ دیو را برابر با ng-app قرار دادیم.
ng-app کار خاصی انجام نمی دهم فقط به دیو مورد نظر یا مرورگر مشخص می کند که ما از فریم ورک AngularJS استفاده می کنیم.
دایرکتیو ng-model
این دایرکتیو روی داده های کار می کند و یک نام دریافت می کند و ما با این نام در AngularJS می توانیم به آن دسترسی داشته باشیم.
دایرکتیو ng-bind
از این دایرکتیو برای bind کردن (متصل کردن) منبع داده استفاده می شود. و یک نام دریافت می کند.
در مثال زیر زمانی که چیزی داخل input تایپ می شود همزمان در تگ p نمایش داده می شود.
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title></title> <!--<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js"></script>--> <script src="angular.min.js"></script> </head> <body> <div ng-app=""> <p>Input something in the input box:</p> <p>Name: <input type="text" ng-model="name"></p> <p ng-bind="name"></p> </div> </body> </html>
در مثال زیر که همانند مثال قبلی است با این تفاوت به جای ng-bind از اکسپرشن {{ name }} استفاده کردیم.
نکته:
توجه کنید که اکسپرشن را بین تگ باز و بسته p نوشتیم
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title></title> <!--<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js"></script>--> <script src="angular.min.js"></script> </head> <body> <div ng-app=""> <p>Input something in the input box:</p> <p>Name: <input type="text" ng-model="name"></p> <p>{{ name }}</p> </div> </body> </html>
دایرکتیو ng-init
با استفاده از این دایرکتیو می توان مقدار دهی اولیه کرد.
در مثال زیر برای بعد از The name is کلمه hossein را اضافه می کند
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title></title> <!--<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js"></script>--> <script src="angular.min.js"></script> </head> <body> <div ng-app="" ng-init="firstName='hossein'"> <input type="text" ng-model="firstName" /> <p>The name is <span ng-bind="firstName"></span></p> </div> </body> </html>
در مثال زیر که همانند مثال قبلی است با این تفاوت که دو input را با استفاده از ng-init مقدار دهی اولیه کردیم.
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title></title> <!--<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js"></script>--> <script src="angular.min.js"></script> </head> <body> <div ng-app="" ng-init='firstName="hossein";lastName="fathi"'> <input type="text" ng-model="firstName" /> <input type="text" ng-model="lastName" /> <p>The name is <span ng-bind="firstName"></span></p> </div> </body> </html>
در مثال زیر از اکسپرشن های AngularJS استفاده کردیم و دو مقدار نام و فامیل را با استفاده از کاراکتر + کنار هم قرار دادیم.
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title></title> <!--<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js"></script>--> <script src="angular.min.js"></script> </head> <body> <div ng-app="" ng-init='firstName="hossein";lastName="fathi"'> <input type="text" ng-model="firstName" /> <input type="text" ng-model="lastName" /> <p>The name is <span>{{firstName+" "+lastName}}</span></p> </div> </body> </html>
در صورتی که بخواهیم از دایرکتیو های AngularJS در HTML5 استفاده کنیم باید پشوند -data مانند مثال زیر به تمام اتربیوت ها اضافه کنیم.
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title></title> <!--<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js"></script>--> <script src="angular.min.js"></script> </head> <body> <div data-ng-app="" data-ng-init='firstName="hossein"'> <input type="text" data-ng-model="firstName" /> <p>The name is <span data-ng-bind="firstName"></span></p> </div> </body> </html>
دایرکتیو ng-repeat
این دایرکتیو همانند دستور foreach عمل می کند.
در مثال زیر ابتدا توسط ng-init یک آرایه تعریف کردیم و سپس این آرایه را توسط ng-repeat نمایش دادیم.
نکته:
هنگام پیماش با ng-repeat به جای li هر تگ دیگری می توانید قرار دهید
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title></title> <!--<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js"></script>--> <script src="angular.min.js"></script> </head> <body> <div ng-app="" ng-init="names=['Jani','Hege','Kai']"> <ul> <li ng-repeat="x in names"> {{ x }} </li> </ul> </div> </body> </html>
آرایه ای از آبجکت ها
در مثال زیر تک تک عناصر هر آبجت را نمایش دادیم به این صورت که بعد از x با قرار دادن یک نقطه نام عنصر را نوشتیم.
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title></title> <!--<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js"></script>--> <script src="angular.min.js"></script> </head> <body> <div ng-app="" ng-init="names=[ {name:'Jani',country:'Norway'}, {name:'Hege',country:'Sweden'}, {name:'Kai',country:'Denmark'}]"> <ul> <li ng-repeat="x in names"> {{ x.name + ', ' + x.country }} </li> </ul> </div> </body> </html>
نظر / سوال