AngularJS 4: Controllers

V minulém díle jsme se dozvěděli, jak funguje Data binding a Directives. Dnes si povíme něco o Controllers a o directive ng-controller.

Controller

je javascriptová funkce, která udržuje data a chování aplikace (metody).

Directive ng-contoller

je užívána k definování controlleru.

Vyzkoušejme si to na příkladě:

<!DOCTYPE HTML>
<html>
<head>
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.9/angular.min.js"></script>
</head>
<body>
<div ng-app="mojeApk" ng-controller="mujController">
    {{zprava}}
    </div>
<script>
    var ngApk = angular.module('mojeApk',[]);
    ngApk.controller('mujController', function($scope){
        $scope.zprava = "Hello World!";
    });
</script>
</body>
</html>

Výsledkem je "Hello World!".

Naši aplikaci jsme pojmenovali pomocí directive ng-app. Toto jméno (v našem případě mojeApk) jsme použili pro tvorbu modulu.

Module je kontejner pro controllery z aplikace. Každý controller vždy patří do nějakého modulu.

Poté, co jsme vytvořili module, přidáme funkci controlleru pomocí metody controller(), kde prvním parametrem je jméno controlleru a druhým funkce, kterou bude controller vykonávat.

$scope

$scope je vestavěný objekt, který obsahuje data aplikace a metody. Díky $scope jsme inicializovali vlastnost (property) zprava a použili v našem view. AngularJS vytváří a implementuje v aplikaci odlišné objekty $scope do každého controlleru. Data a metody připojené ke $scope v jednom controlleru ovšem nemůžeme využít v dalších controllerech.

Controllery se používají k:

  • inicializování (vzniku) objektu $scope
  • přidávání chování objektu $scope

Aplikace AngularJS se sestává z:

  • View - element DOM, který uvidí uživatel.

  • Model - data zobrazená uživateli ve View.

  • Controller - logická činnost skrytá za View.