**AngularJS** (հայտնի է նաև *Angular* և *Angular.js* անուններով), բաց կոդով JavaScript framework է կառուցված MVC ճարտարապետության վրա, որը հիմնականում հովանավորվում է Գուգլ-ի կողմից։ AngularJs-ը ստեղծված է մեկէջյա Վեբ համակարգեր ստեղծելու համար։ Այն ձևափոխում է HTML-ն հավելյալ HTML tag-երի և HTML tag-երի ատրիբուտների միջոցով։ HTML tag-երի ատրիբուտների միջոցով հիմնականում արտացոլվում են կամ արժեքներ են ստանում JavaScript փոփոխականները։

AngularJs-ը նաև կիրառվում է IONIC framework-ում, օգտագործելով Apache Cordova-ն, հիբրիդային բջջային հավելվածներ ստեղծելու համար։

AngularJs-ը նաև հանդես է գալիս MEAN-ի frontend-ը, որը MongoDB, Express.js, AngularJs և Node.js տեխնոլոգիաների համագործակությունն է։

Նկարագրություն
--------------

Մեթոդներ, որոնք նախանշված են $ http ծառայությունների համար՝

```
* delete()
* get()
* head()
* jsonp()
* patch()
* post()
* put()
```

Հատկություններ
--------------

* config– գեներացնում է հարցման ենթակա օբյեկտը
* data a string– սերվերից ստացվող պատասխանը կրող տող կամ էլեմենտ։
* headers– Վերնագրի մասին տեղեկություն հաղորդող ֆունկցիա։
* status –կարգավիճակի նույնականացման համարը ։
* statusText– HTTP կարգավիճակը որոշող տող։

Ներկառուցված AngularJS կիրառական հրահանգներ
-------------------------------------------

AngularJS դիրեկտորիայի միջոցով հնարավոր է ստեղծել ծրագրավորման HTML-թեգեր և ատրիբուտներ, որպեսզի որոշ տարրերի հատկություններ վերագրվեն։

ng-appԸնտրում է օբյեկտ և հայտարարում է որպես արմատ` դիմումի համար.
ng-bindՀՏՄԼ կոդը փոխարինում է այն օբյեկտով, որն անմիջապես ստանում է փոխարկված արժեքը։
ng-modelՆման է ng-bind-ին, միայն ապահովում է երկկողմանի կապը։ Փոփոխելով օբյեկտի պարունակությունը, անգուլյարը փոխում է նաև մոդելի նշանակությունը։ Մոդելի իմաստը փոխվելով՝ փոխվում է օբյեկտի ներքին պարունակությունը։
ng-classԴինամիկ դասերի համար սահմանում է ներբեռնումներ։
ng-controllerHTML արտահայտությունների համար սահմանում է Javascript- ի վերահսկիչ, որը կհամապատասխանի MVC- ին։
ng-repeatՅուրաքանչյուր հավաքածուի համար սահմնաում է DOM- ի օրինակ։
ng-show և ng-hideԹաքցնում կամ ցուցադրում է օբյեկտը՝ կախված արտահայտության իմաստից։
ng-switch
Տարբեր հնարավոր տարբերակներից ստեղծում է շաբլոնի մոդել, որը կհամապատասխանի արտահայտության արժեքին։

ng-viewԲազային դիրեկտորիա, որը պատասխանատու է երթուղու մշակման համար, որոնք ընդունում են JSON- ն, նախքան տվյալ կարգավարների կողմից վերահսկվող կաղապարներ ցուցադրելը։
ng-ifԱվելացնում կամ հեռացնում են DOM- դոմենի մի մասը, կախված արտահայտության արժեքից։
Եթե ngIf- ին տրված արտահայտության արժեքը կեղծ է, ապա տարրը հեռացվում է DOM- ից, հակառակ դեպքում կլոնավորված տարրը նորից տեղադրվում է DOM- ում։
Կան նաև դիրեկտիվներ, որոնք օգտագործում են շաբլոններ script թեգերում։

### Ստեղծման նպատակները

* առանձնացնել DOM-ի հետ աշխատանքը ծրագրի բիզնես տրամաբանությունից
* առանձնացնել frontend-ը backend-ից
* տրամադրել կառուցվածք, որում հստակ առանձնացված են օգտագործողի ինտերֆեյս (անգլ.՝ UI) մշակողի, բիզնես տրամաբանությունը գրողի և տեսավորողի աշխատանքները

Տվյալների երկկողմանի կապ
------------------------

Տվյալների երկկողմանի կապը AngularJS -ում ամենակարևոր առանձնահատկությունն է, որը կրճատում է ծրագրային կոդերի քանակը՝ սերվերին ազատելով շաբլոնների հետ աշխատանքի անհրաժեշտությունից։ Դրա փոխարեն շաբլոնները դիտարկվում են որպես առանձին սովորական HTML, որը լրացված է մոդելում հատկանշված տվյալներով։ `$scope` ծառայությունը Angular-ում վերահսկում է մոդելի փոփոխությունները վերահսկիչի միջոցով։ Բացի դրանից, յուրաքանչյուր փոփոխությունն արտացոլվում է մոդելում։ Սա թույլատրում է անհրաժեշտության դեպքում շրջանցել DOM-ը և վեբ-ծրագրերում հեշտացնում է սկզբնավորումն ու նախատիպերի սահմանումը։
Բերենք օրինակ, որտեղ դիմում է հղվում սերվերին.

```
var app = angular.module('myApp', []);
app.controller('myCtrl', function($scope, $http) {
$http.get("welcome.htm")
.then(function(response) {
$scope.myWelcome = response.data;
});
});
```

Պատասխանն արտածվում է՝
Today's welcome message is:

Hello AngularJS Students

The $http service requests a page on the server, and the response is set as the value of the "myWelcome" variable.

Plugin Chrome-ի համար
---------------------

2012 թ. հուլիսին Անգուլար թիմը Google Chrome զննարկիչի համար թողարկեց Batarang անվանումով պլագին, որը հեշտացնում է այն վեբ-էջերի կարգավորումները, որոնք ստեղծված են Angular խմբագրիչով։ 
Ընդլայնումը թույլ է տալիս հեշտությամբ հայտնաբերել խոչընդոտները և կարգաբերող ծրագրերի համար առաջարկում է գրաֆիկական ինտերֆեյս։

Ծանոթագրություններ
------------------

1. ↑  The angularjs Open Source Project on Open Hub: Languages Page — 2006.
2. ↑  Release 1.8.3 — 2022.
3. ↑  1.8.3 ultimate-farewell (2022-04-07)
4. ↑  angular.js/LICENSE at master · angular/angular.js · GitHub
5. ↑  The angularjs Open Source Project on Open Hub: Licenses Page — 2006.
6. ↑  Пишем простую директиву
7. ↑  ngApp
8. ↑  Data Binding
9. ↑
10. ↑  ngRepeat — directive in module ng
11. ↑  Component Router
12. ↑  ngIf Angular docs
13. ↑  Учебник AngularJS: всеобъемлющее руководство. Часть 2. (Настраиваемые директивы).
14. ↑  Шаблоны в директивах
15. ↑  «5 Awesome AngularJS Features». Արխիվացված օրիգինալից 2013 թ․ մայիսի 20-ին. Վերցված է 2013 թ․ փետրվարի 13-ին.
16. ↑  Batarang homepage
17. ↑  «AngularJS: Introducing the AngularJS Batarang». Արխիվացված է օրիգինալից 2018 թ․ փետրվարի 2-ին. Վերցված է 2017 թ․ նոյեմբերի 6-ին.

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| 

|  |  |
| --- | --- |
|  ⛭   Թեմատիկ կայքեր | GitHub · չարորաբան |
|  |
| Չափորոշչային վերահսկողություն | LCCN: n2017036141 |

 |