AngularJS - Einkaufswagen-Anwendung
Hallo, ambitionierte Programmierer! Heute machen wir uns auf eine aufregende Reise, um eine Einkaufswagenanwendung mit AngularJS zu erstellen. Als Ihr freundlicher Nachbarschaftsinformatiklehrer bin ich begeistert, Sie durch diesen Prozess zu führen, selbst wenn Sie完全新 (komplett neu) im Programmieren sind. Also, holen Sie sich eine Tasse Kaffee (oder Ihr Lieblingsgetränk) und tauchen wir ein!
Was ist AngularJS?
Bevor wir mit der Erstellung unserer Einkaufswagenanwendung beginnen, lassen Sie uns einen Moment innehalten, um zu verstehen, was AngularJS ist. AngularJS ist ein leistungsstarkes JavaScript-Framework, das uns hilft, dynamische Webanwendungen zu erstellen. Es ist wie ein Schweizer Army-Messer für Web-Entwickler, das Werkzeuge bietet, um unser Leben einfacher und unseren Code organisierter zu gestalten.
Einrichtung unseres Projekts
Schritt 1: Erstellung der HTML-Struktur
Lassen Sie uns mit der Erstellung einer grundlegenden HTML-Struktur für unsere Einkaufswagenanwendung beginnen. Machen Sie sich keine Sorgen, wenn Sie mit HTML nicht vertraut sind; ich werde jeden Teil erklären, während wir vorankommen.
<!DOCTYPE html>
<html ng-app="cartApp">
<head>
<title>Mein Einkaufswagen</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>Mein Einkaufswagen</h1>
<!-- Später fügen wir hier mehr Inhalt hinzu -->
</body>
</html>
In dieser HTML-Struktur haben wir einige wichtige Dinge getan:
- Wir haben die AngularJS-Bibliothek über einen CDN-Link eingebunden.
- Wir haben unsere eigene JavaScript-Datei (
app.js
) verknüpft, die wir als nächstes erstellen werden. - Wir haben
ng-app="cartApp"
zum<html>
-Tag hinzugefügt, was AngularJS mitteilt, dass dies das Wurzelelement unserer Anwendung ist. - Wir haben
ng-controller="CartController"
zum<body>
-Tag hinzugefügt, das wir verwenden, um die Logik unseres Einkaufswagens zu verwalten.
Schritt 2: Erstellung der AngularJS-Anwendung
Jetzt erstellen wir unsere app.js
-Datei und richten unsere AngularJS-Anwendung ein:
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);
};
});
Lassen Sie uns das zusammenbrechen:
- Wir erstellen ein AngularJS-Modul namens 'cartApp'.
- Wir definieren einen Controller namens 'CartController'.
- Innerhalb des Controllers richten wir ein leeres Array für unsere Artikel und eine Total-Variablen ein.
- Wir erstellen Funktionen zum Hinzufügen von Artikeln, Entfernen von Artikeln und Berechnen des Gesamtbetrags.
Erstellung der Benutzeroberfläche
Schritt 3: Erstellung der Artikeliste
Lassen Sie uns unser HTML aktualisieren, um die Artikel in unserem Einkaufswagen anzuzeigen:
<body ng-controller="CartController">
<h1>Mein Einkaufswagen</h1>
<ul>
<li ng-repeat="item in items">
{{item.name}} - ${{item.price}}
<button ng-click="removeItem($index)">Entfernen</button>
</li>
</ul>
<p>Total: ${{total}}</p>
</body>
Hier verwenden wir AngularJS-Direktiven:
-
ng-repeat
, um durch unsere Artikel zu iterieren -
{{}}
für Datenbindungen, um Artikel Eigenschaften anzuzeigen -
ng-click
, um unsereremoveItem
-Funktion aufzurufen, wenn der Button geklickt wird
Schritt 4: Hinzufügen neuer Artikel
Lassen Sie uns ein Formular hinzufügen, um Benutzern das Hinzufügen neuer Artikel zu ermöglichen:
<form ng-submit="addItem(newItem)">
<input type="text" ng-model="newItem.name" placeholder="Artikelname" required>
<input type="number" ng-model="newItem.price" placeholder="Preis" required>
<button type="submit">In den Einkaufswagen</button>
</form>
Dieses Formular verwendet:
-
ng-submit
, um unsereaddItem
-Funktion aufzurufen, wenn das Formular submitted wird -
ng-model
, um Eingabewerte an unsernewItem
-Objekt zu binden
Verbesserung der Anwendung
Schritt 5: Hinzufügen von Artikel Mengen
Lassen Sie uns unsere Anwendung so erweitern, dass sie Artikel Mengen verwalten kann:
app.controller('CartController', function($scope) {
// ... vorheriger Code ...
$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);
};
});
Und aktualisieren wir unser HTML:
<li ng-repeat="item in items">
{{item.name}} - ${{item.price}} x {{item.quantity}}
<button ng-click="removeItem($index)">Entfernen</button>
</li>
Schlussfolgerung
Glückwunsch! Sie haben gerade eine funktionierende Einkaufswagenanwendung mit AngularJS erstellt. Wir haben die Grundlagen der Einrichtung einer AngularJS-Anwendung, der Erstellung von Controllern, die Verwendung von Direktiven für Datenbindungen und Ereignisverarbeitung sowie das Hinzufügen einiger fortgeschrittener Funktionen wie die Verwaltung von Artikel Mengen behandelt.
Denken Sie daran, dass das Lernen von Code eine Reise ist, und dies ist erst der Anfang. Bleiben Sie am Ball, experimentieren Sie und vor allem, haben Sie Spaß dabei!
Hier ist eine Tabelle, die die Hauptbegriffe summarisch zusammenfasst, die wir verwendet haben:
Konzept | Beschreibung | Beispiel |
---|---|---|
Modul | Behälter für verschiedene Teile einer App | angular.module('cartApp', []) |
Controller | Enthält die Geschäftslogik für einen Teil der App | app.controller('CartController', function($scope) {...}) |
Scope | Objekt, das auf das Anwendungsmodell verweist | $scope.items = [] |
Direktiven | Erweitert HTML mit benutzerdefinierten Attributen und Elementen |
ng-repeat , ng-click , ng-submit
|
Datenbindung | Synchronisiert Daten zwischen Modell und Ansicht | {{item.name}} |
Weiters coding und denken Sie daran: Jeder Experte war einmal ein Anfänger. Sie machen großartig!
Credits: Image by storyset