Osnovna namjena kontrolera je
- da postavi početne vrijednosti podataka npr. $scope.var='init tekst';
- da preko $scope objekta uspostavi vezu između modela i view-a
- da promatra model i na osnovu izmjene ažurira view
Unutar Modula (Applikacije) može biti više kontrolera. Svaki kontroler bi treba zauzimati svoj funkcionalni dio u HTML-u, odnosnu View-u. Na primjer poseban kontroler za Menu, poseban za PodMenu, a poseban kontroler za npr. Article , ...itd. Na taj način se code učini preglednijim.
$scope
To je objekt koji služi za prijenos model podataka, funkcija i metoda u view.
Primjer pokazuje da se mora definirati sa $scope. Ne može biti $skope :
pokreni primjer
» HTML+JS code
Primjer pokazuje da se unutar dva različita controllera mogu imenovati istoimene varijable.
Svaka varijabla će se moći ispisati samo unutar svoga controllera:
pokreni primjer
» HTML+JS code
Ugnježđivanje (nested controller)
Također je dozvoljeno da se jedan kontroler ugnjezdi unutar drugog. Na taj način može se kreirati hijerarhijski sustav kontrolera sa parent-child odnosima. Child kontroler uvijek nasljeđuje Model podatke svog parenta i to preko $scope objekta.
Primjer pokazuje kako child kontroler može naslijediti varijablu parenta,
a parent ne može od child-a.
pokreni primjer
» HTML+JS code
$parent
Svojsto $scope.$parent se koristi unutar child kontrolera kako bi se pristupilo parent scope-u.
Primjer pokazuje upotrebu $scope.$parent svojstva.
pokreni primjer
» HTML+JS code