AngularJS - Application Todo
Bonjour, futurs programmeurs ! Aujourd'hui, nous allons entreprendre un voyage passionnant dans le monde d'AngularJS en construisant une application Todo simple mais puissante. En tant que votre enseignant de sciences informatiques de quartier, je suis ravi de vous guider dans ce processus, même si vous n'avez jamais écrit une ligne de code auparavant. Alors, prenez votre boisson favorite, installez-vous confortablement, et plongeons dedans !
Qu'est-ce qu'AngularJS ?
Avant de commencer à coder, penchons-nous sur ce qu'est AngularJS. Imaginez que vous construisez une maison. HTML serait les fondations et les murs, CSS serait la peinture et les décorations, et JavaScript serait l'électricité et le plomberie. AngularJS est comme une équipe de construction super-efficace qui vous aide à assembler tous ces éléments de manière intelligente et organisée.
AngularJS est un puissant framework JavaScript qui étend le vocabulaire HTML pour votre application. Il est particulièrement bon pour construire des applications à page unique dynamiques.
Configuration de notre projet
Premiers things first, configurons notre projet. Nous aurons besoin de trois fichiers :
- index.html (notre fichier HTML principal)
- app.js (notre application AngularJS)
- style.css (notre feuille de style)
Commençons par notre fichier HTML :
<!DOCTYPE html>
<html ng-app="todoApp">
<head>
<title>Mon Application Todo</title>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.8.2/angular.min.js"></script>
<script src="app.js"></script>
<link rel="stylesheet" href="style.css">
</head>
<body ng-controller="TodoController">
<h1>Ma Liste Todo</h1>
<!-- Nous ajouterons plus de contenu plus tard -->
</body>
</html>
Décomposons cela :
-
ng-app="todoApp"
: Cela indique à AngularJS que cet élément est la racine de notre application. -
ng-controller="TodoController"
: Cela spécifie quel contrôleur doit être utilisé pour cette partie de notre application. - Nous avons inclus AngularJS depuis un CDN, et lié nos fichiers app.js et style.css.
Création de notre application AngularJS
Maintenant, créons notre application AngularJS dans app.js :
var app = angular.module('todoApp', []);
app.controller('TodoController', function($scope) {
$scope.todos = [
{text: 'Apprendre AngularJS', done: false},
{text: 'Construire une application', done: false}
];
$scope.addTodo = function() {
$scope.todos.push({text: $scope.newTodo, done: false});
$scope.newTodo = '';
};
});
Voici ce qui se passe :
- Nous créons un module AngularJS nommé 'todoApp'.
- Nous définissons un contrôleur nommé 'TodoController'.
- À l'intérieur du contrôleur, nous créons un tableau d'items Todo et une fonction pour ajouter de nouveaux todos.
-
$scope
est comme un pont entre notre HTML et JavaScript. Il nous permet d'accéder aux variables et fonctions dans notre HTML.
Affichage de nos Todos
Metttons à jour notre HTML pour afficher nos todos :
<body ng-controller="TodoController">
<h1>Ma Liste Todo</h1>
<ul>
<li ng-repeat="todo in todos">
<input type="checkbox" ng-model="todo.done">
<span ng-class="{'done': todo.done}">{{todo.text}}</span>
</li>
</ul>
<form ng-submit="addTodo()">
<input type="text" ng-model="newTodo" placeholder="Ajouter une nouvelle todo">
<input type="submit" value="Ajouter">
</form>
</body>
Décomposons cela :
-
ng-repeat="todo in todos"
: Cela crée un nouveau<li>
pour chaque todo dans notre tableau de todos. -
ng-model="todo.done"
: Cela lie la case à cocher à la propriété 'done' de notre todo. -
ng-class="{'done': todo.done}"
: Cela applique la classe 'done' lorsque todo.done est vrai. -
{{todo.text}}
: Cela affiche le texte de notre todo. -
ng-submit="addTodo()"
: Cela appelle notre fonction addTodo lorsque le formulaire est soumis. -
ng-model="newTodo"
: Cela lie l'input à notre variable newTodo dans le contrôleur.
Styling de notre App
Enfin, ajoutons un peu de style dans notre style.css :
body {
font-family: Arial, sans-serif;
max-width: 500px;
margin: 0 auto;
padding: 20px;
}
ul {
list-style-type: none;
padding: 0;
}
li {
margin-bottom: 10px;
}
.done {
text-decoration: line-through;
color: #888;
}
form {
margin-top: 20px;
}
input[type="text"] {
width: 70%;
padding: 5px;
}
input[type="submit"] {
padding: 5px 10px;
}
Cette CSS rendra notre application propre et organisée.
Conclusion
Félicitations ! Vous venez de construire votre première application AngularJS. Voici un tableau récapitulatif des principaux concepts AngularJS que nous avons utilisés :
Concept | Description |
---|---|
ng-app | Définit l'élément racine d'une application AngularJS |
ng-controller | Spécifie quel contrôleur utiliser pour l'élément HTML |
ng-repeat | Répète un élément HTML pour chaque item dans un tableau |
ng-model | Lie un input, select ou textarea à une propriété sur le scope |
ng-submit | Spécifie quelle fonction exécuter lorsque le formulaire est soumis |
ng-class | Applique dynamiquement des classes CSS |
Souvenez-vous, apprendre à coder est comme apprendre une nouvelle langue. Ça prend du temps et de la pratique, mais avec de la persévérance, vous serez bientôt en train de construire des applications complexes. Continuez à coder, continuez à apprendre, et surtout, amusez-vous !
Credits: Image by storyset