Créer un panier simple avec AngularJS Partie 1

Dans cette série de didacticiels, nous verrons comment créer un panier en utilisant AngularJS. Cette série de tutoriels portera sur l’utilisation des directives AngularJS. Les directives AngularJS sont la partie centrale d’AngularJS et confèrent un comportement spécial au code HTML. De la documentation officielle:

A un niveau élevé, les directives sont des marqueurs sur un élément DOM (tel qu'un attribut, un nom d'élément, un commentaire ou une classe CSS) qui indiquent le compilateur HTML d'AngularJS ($ compiler) pour attacher un comportement spécifié à cet élément DOM ou même transformer l’élément DOM et ses enfants.

Conception d'une page de panier

Nous allons utiliser Bootstrap pour concevoir notre page. Une fois que nous aurons terminé avec notre page conçue par Bootstrap, nous l’intégrerons dans notre application AngularJS. Lors de la conception de la page, nous n'entrerons pas dans les détails de Bootstrap, mais nous nous concentrerons sur certains points critiques..

Créez une page appelée index.html. Téléchargez et incluez les fichiers Bootstrap dans index.html.

      Bootstrap Shop Panier        

À l'intérieur de .récipient div, créer un .rangée div. 

dans le index.html page, nous aurons deux colonnes. On aura une liste d'articles avec les prix affichés, et l'autre colonne aura le Total div. Créons donc les deux colonnes.

Maintenant, dans la première colonne, ajoutons quelques éléments et options.

Titre du panneau

Répliquez le code HTML ci-dessus à quelques reprises dans la première colonne pour avoir quelques éléments supplémentaires. Dans la deuxième colonne, ajoutez le code HTML suivant pour afficher la somme du prix des éléments sélectionnés..

Total

Rs. 100

Check-out

Enregistrez les modifications et parcourez index.html. Cela devrait ressembler à:

Ça semble bien. Mais une chose que nous devons corriger est de faire la Total div fixé, de sorte qu'il ne bouge pas lorsque nous faisons défiler le navigateur. Pour résoudre ce problème, nous utiliserons le composant JavaScript Bootstrap, Affix.

Commencez par vous assurer que vous avez inclus le fichier JavaScript Bootstrap. Pour ajouter le comportement affixe, ajoutez simplement le data-spy = "affix" attribuer à la Total div. Facultativement, nous pouvons également spécifier la position que nous souhaitons qu’il soit apposée. Nous allons donc le garder à une certaine hauteur à partir du haut en ajoutant data-offset-top = "20". Maintenant, si vous naviguez index.html et essayez de faire défiler le navigateur, le total reste en haut et toujours visible.

Créer une application de panier

Création d'un serveur de nœud

Lors de la création de notre application AngularJS, nous utiliserons la directive ngView pour changer de vue. Nous devrons donc exécuter l'application AngularJS en utilisant un serveur. Nous allons donc utiliser un serveur Node.js.

Commençons par créer un répertoire pour notre projet appelé Chariot. À l'intérieur Chariot créer un fichier appelé server.js. Nous allons utiliser Express, une infrastructure d'application Web NodeJS, pour restituer les pages. Alors installez Express en utilisant npm.

npm install express

Une fois que Express est installé avec succès, ouvrez server.js, require express et créez une application..

'use strict' var express = require ('express'); var app = express ();

Nous allons garder nos fichiers AngularJS dans un dossier séparé appelé Publique. Créez un dossier appelé Publique. À l'intérieur server.js définir les /Publique et / node_modules chemin.

app.use ('/ public', express.static (__ dirname + '/ public')); app.use ('/ node_modules', express.static (__ dirname + '/ node_modules'));

Ensuite, liez l'application à une adresse de port locale..

app.listen ('3000', function () console.log ('Le serveur est exécuté sur http: // localhost: 3000 !!'))

Maintenant, démarrez le serveur Node.js et vous devriez obtenir le message de démarrage du serveur dans le terminal.

noeud serveur.js

Mais si vous essayez de naviguer sur http: // localhost: 3000, l'erreur s'affichera. Ne peut pas obtenir / parce que nous n'avons pas encore défini d'itinéraires.

Créer une application AngularJS

À l'intérieur de Publique répertoire créer une page appelée main.html. Cela servira de notre fichier de modèle racine. Il suffit de copier le index.html page que nous avons précédemment créé dans main.html. De main.html enlever le contenu à l'intérieur du corps. 

Télécharger AngularJS et l'inclure dans main.html. Ajoutez la directive ngApp en haut de la balise HTML.

À l'intérieur de main.html body, ajoutez un div avec la directive ngView. Après avoir apporté toutes les modifications ci-dessus, voici comment main.html regards:

   Bootstrap Shop Panier       

Définissons à présent le rendu de notre page par défaut au démarrage du serveur de noeud. Ouvrir Panier / serveur.js et ajoutez la route d'application suivante pour rediriger vers le main.html page.

app.get ('/', fonction (req, res) res.sendFile ('main.html', 'root': __ nom_répertoire + '/ public'))

Enregistrez les modifications et redémarrez le serveur de noeud. Pointez votre navigateur sur http: // localhost: 3000 et vous devriez pouvoir voir une page vierge, contrairement à la dernière fois où nous avions une erreur dans le même itinéraire.

Création d'une vue de panier et d'un itinéraire

Ensuite, intégrons le design du panier dans l’application AngularJS. À l'intérieur de Publique répertoire créer un autre dossier appelé Chariot. À l'intérieur Chariot créer deux fichiers, cart.html et cart.js. Depuis notre page de conception Bootstrap appelée index.html, copier le contenu à l'intérieur du corps et coller dans cart.html.

Nous exigerons ngRoute, alors installez-le en utilisant npm.

npm install angular-route

Une fois installé, ajoutez une référence à voie angulaire dans main.html.

S'ouvrir cart.js et définir le Chariot module.

angular.module ('cart', ['ngRoute'])

Comme on le voit dans le code ci-dessus, nous avons injecté le ngRoute module, que nous utiliserons pour définir les itinéraires.

.config (['$ routeProvider', fonction ($ routeProvider) $ routeProvider.when ('/ cart', templateUrl: 'public / cart / cart.html', contrôleur: 'CartCtrl');])

En utilisant le ngRoute module, nous avons défini le /Chariot route avec son modèle et son contrôleur respectifs. Définissez également le CartCtrl contrôleur à l'intérieur cart.js. Voici comment cart.js regards:

'use strict'; angular.module ('cart', ['ngRoute']) .config (['$ routeProvider', fonction ($ routeProvider) $ routeProvider.when ('/ cart', templateUrl: 'public / cart / cart.html ', contrôleur:' CartCtrl ');]) .controller (' CartCtrl ', [function () ]);

Nous aurons également besoin d’un fichier racine pour injecter tous les modules dans notre application AngularJS. Donc à l'intérieur du Publique répertoire créer un fichier appelé app.js. Ce fichier servira de fichier racine pour l'application AngularJS. Créez un nouveau module appelé chariot à l'intérieur app.js et injecter le module de chariot dedans.

angular.module ('shoppingCart', ['ngRoute', 'cart']).

Définissez la route par défaut pour l'application AngularJS à /Chariot à l'intérieur app.js.

'use strict'; angular.module ('shoppingCart', ['ngRoute', 'cart']). config (['$ routeProvider', fonction ($ routeProvider) $ routeProvider.otherwise (redirectTo: '/ cart'));

Ajouter une référence à cart.js et app.js dans le main.html page.

 

Enregistrez toutes les modifications et redémarrez le serveur. Pointez votre navigateur sur http: // localhost: 3000 et vous devriez avoir la page du panier affichée.

Maintenant, si vous faites défiler la page, la Total div ne reste pas fixe. Gardez une note de ce problème-nous le corrigerons plus tard dans la série.

Création d'une vue de paiement et d'un itinéraire

Dans le répertoire public, créez un dossier appelé check-out. À l'intérieur de check-out dossier, créer deux fichiers appelés checkout.html et checkout.js. Ouvrir checkout.html et ajoutez le code HTML suivant:

Devis

CPU Rs. 20000
Disque dur Rs. 5000
Total: Rs. 25000
Personnaliser

Ouvrir checkout.js et créer le check-out module. Injecter le ngRoute module et définir le modèle par défaut et sa logique de contrôleur. Voici comment checkout.js regarde enfin:

'use strict'; angular.module ('checkout', ['ngRoute']) .config (['$ routeProvider', fonction ($ routeProvider) $ routeProvider.when ('/ checkout', templateUrl: 'public / checkout / checkout.html ', contrôleur:' CheckoutCtrl ');]) .controller (' CheckoutCtrl ', [' $ scope ', fonction ($ scope) ]);

Inclure une référence à checkout.js dans le main.html fichier.

Injecter le module check-out dans app.js de sorte que la chariot L'application AngularJS est consciente de ce module.

angular.module ('shoppingCart', ['ngRoute', 'cart', 'checkout']).

Enregistrez les modifications et redémarrez le serveur. Pointez votre navigateur sur http: // localhost: 3000 / # / checkout et vous devriez pouvoir voir la page de paiement.

Conclusion

Dans ce tutoriel, nous avons conçu et intégré la conception simple de notre panier dans une application AngularJS. Dans la prochaine partie de cette série, nous verrons comment créer une directive personnalisée pour implémenter les fonctionnalités requises..

Le code source de ce tutoriel est disponible sur GitHub. Faites-nous savoir vos pensées, corrections et suggestions dans la boîte de commentaire ci-dessous!