AngularJS - Application Panier
Bonjour, aspirants programmeurs ! Aujourd'hui, nous allons entreprendre un voyage passionnant pour créer une application de panier d'achat en utilisant AngularJS. En tant que votre enseignant de science informatique de quartier, je suis ravi de vous guider à travers ce processus, même si vous êtes complètement nouveau au développement. Alors, prenez une tasse de café (ou votre boisson favorite) et plongeons dedans !
Qu'est-ce que AngularJS ?
Avant de commencer à construire notre application de panier, penchons-nous un moment sur ce qu'est AngularJS. AngularJS est un puissant framework JavaScript qui nous aide à créer des applications web dynamiques. C'est comme un couteau suisse pour les développeurs web, offrant des outils pour rendre notre vie plus simple et notre code plus organisé.
Configuration de Notre Projet
Étape 1 : Création de la Structure HTML
Commençons par créer une structure HTML de base pour notre application de panier d'achat. Ne vous inquiétez pas si vous n'êtes pas familier avec HTML ; je vais expliquer chaque partie au fur et à mesure.
<!DOCTYPE html>
<html ng-app="cartApp">
<head>
<title>Mon Panier d'Achat</title>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.8.2/angular.min.js"></script>
<script src="app.js"></script>
</head>
<body ng-controller="CartController">
<h1>Mon Panier d'Achat</h1>
<!-- Nous ajouterons plus de contenu ici plus tard -->
</body>
</html>
Dans cette structure HTML, nous avons fait quelques choses importantes :
- Nous avons inclus la bibliothèque AngularJS en utilisant un lien CDN.
- Nous avons lié notre propre fichier JavaScript (
app.js
) que nous allons créer ensuite. - Nous avons ajouté
ng-app="cartApp"
à la balise<html>
, ce qui indique à AngularJS que cet élément est la racine de notre application. - Nous avons ajouté
ng-controller="CartController"
à la balise<body>
, que nous utiliserons pour gérer la logique de notre panier.
Étape 2 : Création de l'Application AngularJS
Maintenant, créons notre fichier app.js
et configurons notre application AngularJS :
var app = angular.module('cartApp', []);
app.controller('CartController', function($scope) {
$scope.items = [];
$scope.total = 0;
$scope.addItem = function(item) {
$scope.items.push(item);
$scope.calculateTotal();
};
$scope.removeItem = function(index) {
$scope.items.splice(index, 1);
$scope.calculateTotal();
};
$scope.calculateTotal = function() {
$scope.total = $scope.items.reduce(function(sum, item) {
return sum + item.price;
}, 0);
};
});
Reprenons cela :
- Nous créons un module AngularJS nommé 'cartApp'.
- Nous définissons un contrôleur nommé 'CartController'.
- À l'intérieur du contrôleur, nous configurons un tableau vide pour nos articles et une variable total.
- Nous créons des fonctions pour ajouter des articles, supprimer des articles et calculer le total.
Construction de l'Interface Utilisateur
Étape 3 : Création de la Liste des Articles
Mettons à jour notre HTML pour afficher les articles dans notre panier :
<body ng-controller="CartController">
<h1>Mon Panier d'Achat</h1>
<ul>
<li ng-repeat="item in items">
{{item.name}} - ${{item.price}}
<button ng-click="removeItem($index)">Supprimer</button>
</li>
</ul>
<p>Total : ${{total}}</p>
</body>
Ici, nous utilisons des directives AngularJS :
-
ng-repeat
pour boucler sur nos articles -
{{}}
pour le lien de données pour afficher les propriétés des articles -
ng-click
pour appeler notre fonctionremoveItem
lorsque le bouton est cliqué
Étape 4 : Ajout de Nouveaux Articles
Ajoutons un formulaire pour permettre aux utilisateurs d'ajouter de nouveaux articles :
<form ng-submit="addItem(newItem)">
<input type="text" ng-model="newItem.name" placeholder="Nom de l'article" required>
<input type="number" ng-model="newItem.price" placeholder="Prix" required>
<button type="submit">Ajouter au Panier</button>
</form>
Ce formulaire utilise :
-
ng-submit
pour appeler notre fonctionaddItem
lorsque le formulaire est soumis -
ng-model
pour lier les valeurs d'entrée à notre objetnewItem
Amélioration de l'Application
Étape 5 : Ajout des Quantités d'Articles
Modifions notre application pour gérer les quantités d'articles :
app.controller('CartController', function($scope) {
// ... code précédent ...
$scope.addItem = function(item) {
var existingItem = $scope.items.find(function(i) {
return i.name === item.name;
});
if (existingItem) {
existingItem.quantity += 1;
} else {
item.quantity = 1;
$scope.items.push(item);
}
$scope.calculateTotal();
$scope.newItem = {};
};
$scope.removeItem = function(index) {
var item = $scope.items[index];
item.quantity -= 1;
if (item.quantity === 0) {
$scope.items.splice(index, 1);
}
$scope.calculateTotal();
};
$scope.calculateTotal = function() {
$scope.total = $scope.items.reduce(function(sum, item) {
return sum + (item.price * item.quantity);
}, 0);
};
});
Et mettons à jour notre HTML :
<li ng-repeat="item in items">
{{item.name}} - ${{item.price}} x {{item.quantity}}
<button ng-click="removeItem($index)">Supprimer</button>
</li>
Conclusion
Félicitations ! Vous venez de construire une application de panier d'achat fonctionnelle en utilisant AngularJS. Nous avons couvert les bases de la configuration d'une application AngularJS, de la création de contrôleurs, de l'utilisation de directives pour le liaison de données et la gestion des événements, et même ajouté des fonctionnalités plus avancées comme la gestion des quantités d'articles.
Souvenez-vous, apprendre à coder est un voyage, et ceci n'est que le début. Continuez à pratiquer, expérimenter, et surtout, amusez-vous avec ça !
Voici un tableau récapitulatif des principaux concepts AngularJS que nous avons utilisés :
Concept | Description | Exemple |
---|---|---|
Module | Conteneurs pour différentes parties d'une application | angular.module('cartApp', []) |
Contrôleur | Contient la logique métier pour une partie de l'application | app.controller('CartController', function($scope) {...}) |
Scope | Objet qui fait référence au modèle de l'application | $scope.items = [] |
Directives | Étendent HTML avec des attributs et éléments personnalisés |
ng-repeat , ng-click , ng-submit
|
Liaison de Données | Synchronise les données entre le modèle et la vue | {{item.name}} |
Continuez à coder, et souvenez-vous : chaque expert a déjà été un débutant. Vous allez bien !
Credits: Image by storyset