In diesem Lernprogramm erfahren Sie, wie Sie mit AngularJS einen einfachen Warenkorb erstellen. Diese Tutorialserie konzentriert sich auf die Verwendung von AngularJS-Direktiven. AngularJS-Direktiven sind der Kernbestandteil von AngularJS und verleihen dem HTML-Code ein besonderes Verhalten. Aus den offiziellen Dokumenten:
Auf hoher Ebene sind Direktiven Markierungen in einem DOM-Element (z. B. ein Attribut, ein Elementname, ein Kommentar oder eine CSS-Klasse), die den HTML-Compiler von AngularJS ($ kompilieren
), um ein bestimmtes Verhalten an dieses DOM-Element anzuhängen oder sogar das DOM-Element und seine untergeordneten Elemente zu transformieren.
Wir werden Bootstrap verwenden, um unsere Seite zu gestalten. Sobald wir mit der von Bootstrap entwickelten Seite fertig sind, integrieren wir sie in unsere AngularJS-Anwendung. Beim Entwerfen der Seite werden wir nicht viel auf Bootstrap eingehen, aber wir konzentrieren uns auf einige kritische Punkte.
Erstellen Sie eine Seite namens index.html
. Laden Sie die Bootstrap-Dateien herunter und fügen Sie sie in ein index.html
.
Bootstrap-Shop-Warenkorb
In der .Container
div, erstellen Sie eine .Reihe
div.
In dem index.html
Seite haben wir zwei Spalten. In einer wird eine Liste mit Artikeln angezeigt, deren Preise angezeigt werden, und in der anderen Spalte wird angezeigt Gesamt
div. Also lassen Sie uns die beiden Spalten erstellen.
Nun fügen wir in der ersten Spalte einige Elemente und Optionen hinzu.
Panel-Titel
Replizieren Sie den obigen HTML-Code einige Male in der ersten Spalte, um weitere Elemente zu erhalten. Fügen Sie in der zweiten Spalte den folgenden HTML-Code hinzu, um die Summe des Preises der ausgewählten Artikel anzuzeigen.
Gesamt
Rs. 100
Auschecken
Speichern Sie die Änderungen und durchsuchen Sie index.html
. Es sollte so aussehen:
Es sieht gut aus. Aber eine Sache, die wir reparieren müssen, ist die Gesamt
div behoben, damit es sich beim Scrollen im Browser nicht bewegt. Um dies zu beheben, verwenden wir die Bootstrap-JavaScript-Komponente Affix.
Stellen Sie zunächst sicher, dass Sie die Bootstrap-JavaScript-Datei enthalten haben. Um das Affix-Verhalten hinzuzufügen, fügen Sie einfach das data-spy = "affix"
Attribut zum Gesamt
div. Optional können wir auch die Position angeben, an der es angebracht werden soll. Lassen Sie es also durch Hinzufügen auf einer bestimmten Höhe von oben bleiben data-offset-top = "20"
. Nun, wenn Sie stöbern index.html
und versuchen Sie, den Browser nach unten zu scrollen, die Summe bleibt oben und immer sichtbar.
Beim Erstellen unserer AngularJS-App verwenden wir die ngView-Direktive zum Wechseln der Ansichten. Daher müssen wir die AngularJS-Anwendung auf einem Server ausführen. Daher verwenden wir einen Node.js-Server.
Beginnen wir mit dem Erstellen eines Verzeichnisses für unser Projekt Einkaufswagen
. Innerhalb Einkaufswagen
Erstellen Sie eine Datei namens server.js
. Wir verwenden Express, ein NodeJS-Webanwendungs-Framework, um die Seiten zu rendern. Also installieren ausdrücken
mit npm
.
npm install express
Wenn Sie express erfolgreich installiert haben, öffnen Sie server.js, benötigen Sie express und erstellen Sie eine App.
'use strict' var express = required ('express'); var app = express ();
Wir halten unsere AngularJS-Dateien in einem separaten Ordner mit dem Namen Öffentlichkeit
. Erstellen Sie einen Ordner mit dem Namen Öffentlichkeit
. Innerhalb server.js
definiere das /Öffentlichkeit
und / knotenmodule
Pfad.
app.use ('/ public', express.static (__ dirname + '/ public')); app.use ('/ node_modules', express.static (__ dirname + '/ node_modules'));
Binden Sie anschließend die Anwendung an eine lokale Portadresse.
app.listen ('3000', function () console.log ('Server läuft unter http: // localhost: 3000 !!'))
Starten Sie nun den Node.js-Server und Sie sollten die Nachricht zum Starten des Servers im Terminal erhalten.
Knoten server.js
Wenn Sie jedoch versuchen, http: // localhost: 3000 zu durchsuchen, wird der Fehler angezeigt Kann nicht bekommen /
weil wir noch keine Routen definiert haben.
In der Öffentlichkeit
Verzeichnis erstellen Sie eine Seite namens main.html
. Dies wird als Stammvorlagendatei dienen. Kopieren Sie einfach die index.html
Seite, die wir zuvor erstellt haben main.html
. Von main.html
Entfernen Sie den Inhalt im Körper.
Laden Sie AngularJS herunter und fügen Sie es in ein main.html
. Fügen Sie die ngApp-Direktive oben im HTML-Tag hinzu.
In der main.html
body, fügen Sie ein div mit der ngView-Direktive hinzu. Nachdem Sie alle oben genannten Änderungen vorgenommen haben, folgen Sie den Anweisungen main.html
sieht aus:
Bootstrap-Shop-Warenkorb
Definieren wir nun unsere Standardseite, die beim Start des Knotenservers gerendert werden soll. Öffnen ShoppingCart / server.js
und fügen Sie die folgende Anwendungsroute hinzu, um zur Weiterleitung umzuleiten main.html
Seite.
app.get ('/', Funktion (req, res) res.sendFile ('main.html', 'root': __ dirname + '/ public');)
Speichern Sie die Änderungen und starten Sie den Knotenserver neu. Richten Sie Ihren Browser auf http: // localhost: 3000 und Sie sollten in der Lage sein, eine leere Seite anzuzeigen, anders als beim letzten Mal, als wir auf derselben Route einen Fehler hatten.
Als Nächstes integrieren wir das Warenkorbdesign in die AngularJS-App. In der Öffentlichkeit
Verzeichnis erstellen Sie einen anderen Ordner namens Wagen
. Innerhalb Wagen
Erstellen Sie zwei Dateien, cart.html
und cart.js
. Von unserer Bootstrap-Design-Seite index.html
, kopiere den Inhalt im Körper und füge ihn in ein cart.html
.
Wir werden es brauchen ngRoute
, Installieren Sie es also mit npm
.
npm installiere die Winkelroute
Fügen Sie nach der Installation einen Verweis auf hinzu Winkel-Route
im main.html
.
Aufmachen cart.js
und definieren die Wagen
Modul.
angle.module ('cart', ['ngRoute'])
Wie im obigen Code zu sehen ist, haben wir die ngRoute
Modul, mit dem wir die Routen definieren.
.config (['$ routeProvider', Funktion ($ routeProvider) $ routeProvider.when ('/ cart', templateUrl: 'public / cart / cart.html', Controller: 'CartCtrl');])
Verwendung der ngRoute
Modul haben wir die definiert /Wagen
Route mit der entsprechenden Vorlage und dem Controller. Definieren Sie auch die CartCtrl
Controller im Inneren cart.js
. Hier ist, wie cart.js
sieht aus:
'streng verwenden'; angle.module ('cart', ['ngRoute']) .config (['$ routeProvider', Funktion ($ routeProvider) $ routeProvider.when ('/ cart', templateUrl: 'public / cart / cart.html ', Controller:' CartCtrl ');]) .controller (' CartCtrl ', [function () ]);
Wir benötigen auch eine Root-Datei, um alle Module in unsere AngularJS-Anwendung einzufügen. Also in der Öffentlichkeit
Verzeichnis erstellen Sie eine Datei namens app.js
. Diese Datei dient als Stammdatei für die AngularJS-Anwendung. Erstellen Sie ein neues Modul mit dem Namen Einkaufswagen
Innerhalb app.js
und spritzen Sie das Wagenmodul hinein.
angle.module ('shoppingCart', ['ngRoute', 'cart']).
Definieren Sie die Standardroute für die AngularJS-Anwendung /Wagen
Innerhalb app.js
.
'streng verwenden'; angle.module ('shoppingCart', ['ngRoute', 'cart']). config (['$ routeProvider'), Funktion ($ routeProvider) $ routeProvider.otherwise (redirectTo: '/ cart');]);
Fügen Sie einen Verweis hinzu cart.js
und app.js
in dem main.html
Seite.
Speichern Sie alle Änderungen und starten Sie den Server neu. Richten Sie Ihren Browser auf http: // localhost: 3000, und die Warenkorbseite sollte angezeigt werden.
Wenn Sie nun die Seite nach unten scrollen, wird die Gesamt
div bleibt nicht fest. Notieren Sie sich dieses Problem - wir werden es später in der Serie beheben.
Erstellen Sie im öffentlichen Verzeichnis einen Ordner mit dem Namen Auschecken
. In der Auschecken
erstellen Sie zwei Dateien mit dem Namen checkout.html
und checkout.js
. Öffnen checkout.html
und fügen Sie den folgenden HTML-Code hinzu:
Zitat
Zentralprozessor Rs. 20000 Festplatte Rs. 5000 Gesamt: Rs. 25000 Anpassen
Öffnen checkout.js
und das erstellen Auschecken
Modul. Injizieren Sie die ngRoute
Modul und definieren Sie die Standardvorlage und ihre Controller-Logik. Hier ist, wie checkout.js
endlich sieht aus:
'streng verwenden'; angle.module ('checkout', [ngRoute '])) .config ([' $ routeProvider '), Funktion ($ routeProvider) $ routeProvider.when (' / checkout ', templateUrl:' public / checkout / checkout.html) ', Controller:' CheckoutCtrl ');]) .controller (' CheckoutCtrl ', [' $ scope ', Funktion ($ scope) ]);
Fügen Sie einen Verweis hinzu checkout.js
in dem main.html
Datei.
Injizieren Sie das Modul Auschecken
im app.js
so, dass die Einkaufswagen
Die AngularJS-Anwendung kennt dieses Modul.
angle.module ('shoppingCart', ['ngRoute', 'cart', 'checkout']).
Speichern Sie die Änderungen und starten Sie den Server neu. Richten Sie Ihren Browser auf http: // localhost: 3000 / # / checkout, und Sie sollten die Checkout-Seite sehen können.
In diesem Lernprogramm haben wir unser einfaches Warenkorbdesign in eine AngularJS-Anwendung entwickelt und integriert. Im nächsten Teil dieser Serie erfahren Sie, wie Sie eine benutzerdefinierte Anweisung erstellen, um die erforderliche Funktionalität zu implementieren.
Der Quellcode aus diesem Tutorial ist auf GitHub verfügbar. Teilen Sie uns Ihre Gedanken, Korrekturen und Vorschläge im Kommentarfeld mit!