AngularJS - Application Minuterie
Bonjour, futurs programmeurs ! Aujourd'hui, nous allons entreprendre un voyage passionnant pour créer une application de minuteur en utilisant AngularJS. Ne vous inquiétez pas si vous n'avez jamais écrit une ligne de code auparavant - je serai votre guide amical à travers cette aventure, en expliquant tout étape par étape. Alors, mettons nos manches et plongeons dedans !
Qu'est-ce qu'AngularJS ?
Avant de commencer à construire notre minuteur, penchons-nous un moment sur ce qu'est AngularJS. Imaginez que vous construisez une maison. AngularJS est comme une boîte à outils magique qui rend plus facile la construction des murs, du toit et de tout ce qu'il y a entre les deux. C'est un framework JavaScript qui nous aide à créer des applications web dynamiques avec moins d'effort.
Configuration de Notre Projet
Étape 1 : Inclure AngularJS
Premierement, nous devons inclure AngularJS dans notre projet. C'est comme inviter un ami super-intelligent pour nous aider avec nos devoirs. Nous allons faire cela en ajoutant une seule ligne de code à notre fichier HTML :
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.8.2/angular.min.js"></script>
Cette ligne indique à notre page web de charger AngularJS à partir des serveurs de Google. C'est comme ouvrir la boîte à outils magique dont nous avons parlé plus tôt.
Étape 2 : Créer la Structure HTML
Maintenant, créons la structure de base de notre application minuteur. Pensez-y comme un croquis du plan de notre maison :
<!DOCTYPE html>
<html ng-app="timerApp">
<head>
<title>Minuterie AngularJS</title>
</head>
<body ng-controller="TimerController">
<h1>Minuterie AngularJS</h1>
<p>Temps : {{time}}</p>
<button ng-click="startTimer()">Démarrer</button>
<button ng-click="stopTimer()">Arrêter</button>
<button ng-click="resetTimer()">Réinitialiser</button>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.8.2/angular.min.js"></script>
<script src="app.js"></script>
</body>
</html>
Décomposons cela :
-
ng-app="timerApp"
: Cela indique à AngularJS que tout notre document HTML est une application Angular nommée "timerApp". -
ng-controller="TimerController"
: Cela applique un contrôleur (que nous allons créer bientôt) à notre élément<body>
. -
{{time}}
: C'est où notre minuteur affichera le temps actuel. - Les boutons ont des attributs
ng-click
, qui déclencheront des fonctions lorsque cliqués.
Création de l'Application AngularJS
Étape 3 : Configuration du JavaScript
Maintenant, créons notre fichier app.js
. C'est là que l'on opère la magie !
var app = angular.module('timerApp', []);
app.controller('TimerController', function($scope, $interval) {
$scope.time = 0;
var timer;
$scope.startTimer = function() {
if (!timer) {
timer = $interval(function() {
$scope.time++;
}, 1000);
}
};
$scope.stopTimer = function() {
if (timer) {
$interval.cancel(timer);
timer = null;
}
};
$scope.resetTimer = function() {
$scope.stopTimer();
$scope.time = 0;
};
});
Whaou, c'est beaucoup ! Décomposons cela étape par étape :
-
var app = angular.module('timerApp', []);
: Cela crée notre application AngularJS. -
app.controller('TimerController', function($scope, $interval) { ... });
: Cela définit notre contrôleur. Pensez-y comme le cerveau de notre application. -
$scope.time = 0;
: Cela initialise notre minuteur à 0. -
Les fonctions
startTimer
,stopTimer
, etresetTimer
:
-
startTimer
utilise$interval
pour incrémenter$scope.time
toutes les secondes. -
stopTimer
annule l'intervalle lorsque nous voulons mettre en pause. -
resetTimer
arrête le minuteur et remet le temps à 0.
Comment Ça Marche Ensemble
Lorsque vous ouvrez le fichier HTML dans votre navigateur, AngularJS entre en action. Il voit les directives ng-app
et ng-controller
et sait utiliser notre code JavaScript pour contrôler la page.
Le {{time}}
dans notre HTML est automatiquement mis à jour chaque fois que $scope.time
change dans notre JavaScript. Cela s'appelle la liaison de données bidirectionnelle, et c'est l'une des fonctionnalités les plus cool d'AngularJS !
Lorsque vous cliquez sur un bouton, la fonction correspondante dans notre contrôleur est appelée, mettant à jour le minuteur selon besoi
Credits: Image by storyset