Moduuli ja Controller

Moduulit

AngularJS:llä on oma moduulijärjestelmä jolla koodia voi jakaa osioihin ja joiden riippuvuuksia voi määritellä. Moduulien koodia ei ladata dynaamisesti serveriltä joten se ei ole yhtä kehittynyt kuin vaikka Require.js. Monet AngularJS:n esimerkit eivät käytä moduuleita vaan lisää koodin rumasti namespacen juureen. Näin ei kannata tedä vaan kannattaa heti alusta asti käyttää moduleita.

angular.module('appModule', []) kutsun toinen paramteri on tyhjä taulukko jossa määritellään tämän moduulin riippuvuudet muista moduuleista. Vielä niitä ei ole koska tämä on ainoa moduuli. appModule pitää myös muistaa määritellä ng-app -directiivin arvoksi jotta AngularJS tietää mistä moduulista ng-conteller -komennon controllia lähdetään etsimään.

Controller

Controller on View:n/Templaten logiikkapuoli. Se luodaan moduulin osaksi angular.module('appModule').controller(...); kutsulla. Metodin ensimmäinen paramteri on controllerin nimi. Toinen on controllerin koodi joka on määritelty functiona koska JavaScriptissä functiolla voi simuloida luokkaa koska sillä on 'konstruktori'. Lisäksi function this viite toimii paremmin kuin JavaScriptin Objectissa.

Controllerin function paramterina on $scope. Tämä on AngularJS:n injektoima olio/palvelu eli AngularJS:ssä on tietyn mallin IOC. Paramteina voidaan injktoida AnfularJS:n omia palveluita tai itse luotuja Servicejä.

$scope

$scope on AngularJS:n luoma olio joka määrittelee functiot ja muuttujat jotka näkyvät Viewille. Eli HTML:n expressioneissa ja ng-model directiiveissä voidaan viitata kaikkiin $scopen muuttujin. AngularJS:n palvelut on määritelty alkamaan $-merkillä jotta ne erottaa heti omasta koodista.

AngularJS havaitsee automaattisesti $scopen muuttujien muutokset. Tämä tehdään vertaamalla $scopen tilaa edelliseen tilaan eli muuttujiin ei kosketa eikä niihin laitetan AngulaJS:n koodia.

ng-controller diretiivi

ng-controller diretiivi määrittää DOMissa alueen jossa controllerin $scope näkyy. Controlleita voi olla yhdellä sivulla monta ja ne voivat ola sisäkkäisiä.


Etunimi:

Sukunimi:

Koko nimi: {{ etunimi + ' ' + sukunimi }}