Contrôleur AngularJS



Contrôleurs AngularJS Contrôlez les données des applications AngularJS.

Les contrôleurs AngularJS sont des objets JavaScript classiques.


Contrôleurs AngularJS

Les applications AngularJS sont contrôlées par des contrôleurs. La directive

ng-controller définit un contrôleur d'application.

Les contrôleurs sont des objets JavaScript, créés par le constructeur d'objets JavaScript standard.

Instance

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<script src="http://apps.bdimg.com/libs/angular.js/1.4.6/angular.min.js"></script>
</head>
<body>

<div ng-app="myApp" ng-controller="personCtrl">

名: <input type="text" ng-model="firstName"><br>
姓: <input type="text" ng-model="lastName"><br>
<br>
姓名: {{fullName()}}

</div>

<script>
var app = angular.module('myApp', []);
app.controller('personCtrl', function($scope) {
    $scope.firstName = "John";
    $scope.lastName = "Doe";
    $scope.fullName = function() {
        return $scope.firstName + " " + $scope.lastName;
    }
});
</script>

</body>
</html>

Exécuter l'instance»

Cliquez sur le bouton « Exécuter l'instance » pour afficher l'instance en ligne

Analyse des applications :

Les applications AngularJS sont définies par ng-app. L'application s'exécute dans un <div>. L'attribut

ng-controller="myCtrl" est une directive AngularJS. Utilisé pour définir un contrôleur. La fonction

myCtrl est une fonction JavaScript.

AngularJS utilise l'objet $scope pour appeler les contrôleurs.

Dans AngularJS, $scope est un objet d'application (appartenant aux variables et fonctions d'application).

Le $scope du contrôleur (équivalent à la portée, la portée du contrôle) est utilisé pour enregistrer les objets du modèle AngularJS.

Le contrôleur crée deux propriétés dans la portée (prénom et nom). La directive

ng-model lie le champ de saisie aux propriétés du contrôleur (firstName et lastName).


Méthodes de contrôleur

L'exemple ci-dessus montre un objet contrôleur avec deux propriétés : lastName et firstName.

Les contrôleurs peuvent également avoir des méthodes (variables et fonctions) :

Instance

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<script src="http://apps.bdimg.com/libs/angular.js/1.4.6/angular.min.js"></script>
</head>
<body>

<div ng-app="myApp" ng-controller="personCtrl">

名: <input type="text" ng-model="firstName"><br>
姓: <input type="text" ng-model="lastName"><br>
<br>
姓名: {{fullName()}}

</div>

<script>
var app = angular.module('myApp', []);
app.controller('personCtrl', function($scope) {
    $scope.firstName = "John";
    $scope.lastName = "Doe";
    $scope.fullName = function() {
        return $scope.firstName + " " + $scope.lastName;
    }
});
</script>

</body>
</html>

Exécuter l'instance»

Cliquez sur le bouton "Exécuter l'instance" pour afficher l'instance en ligne



Contrôleur dans un fichier externe

Dans les grandes applications, il est courant de stocker les contrôleurs dans des fichiers externes.

Copiez simplement le code de la balise <script> dans un fichier externe appelé personController.js :

Instance

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<script src="http://apps.bdimg.com/libs/angular.js/1.4.6/angular.min.js"></script>
</head>
<body>

<div ng-app="myApp" ng-controller="personCtrl">

名: <input type="text" ng-model="firstName"><br>
姓: <input type="text" ng-model="lastName"><br>
<br>
姓名: {{firstName + " " + lastName}}

</div>

<script src="personController.js"></script>

</body>
</html>

Exécuter l'instance»

Cliquez sur le bouton "Exécuter l'instance" pour afficher l'instance en ligne



Autres exemples

L'exemple suivant crée un nouveau fichier de contrôleur :

angular.module('myApp', []).controller('namesCtrl' , function($scope) {
$scope.names = [
{nom:'Jani',pays:'Norvège'},
{nom:'Hege',pays:'Suède'},
{name:'Kai',country:'Denmark'}
];
});

Enregistrez le fichier sous namesController.js :

Ensuite , Utilisez le fichier du contrôleur dans l'application :

Instance

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<script src="http://apps.bdimg.com/libs/angular.js/1.4.6/angular.min.js"></script>
</head>
<body>

<div ng-app="myApp" ng-controller="namesCtrl"> 

<ul>
  <li ng-repeat="x in names">
    {{ x.name + ', ' + x.country }}
  </li>
</ul>

</div>

<script src="namesController.js"></script>

</body>
</html>

Exécuter l'instance»

Cliquez sur "Exécuter Bouton "" Instance pour visualiser des exemples en ligne