AngularJS-toepassing:
Het is tijd om een echte AngularJS-applicatie te maken.
Maak een boodschappenlijst
Laten we enkele van de AngularJS-functies gebruiken om een boodschappenlijstje te maken, waar u items kunt toevoegen of verwijderen:
Mijn boodschappenlijstje
- Melk×
- Brood×
- Kaas×
Toepassing uitgelegd
Stap 1. Aan de slag:
Begin met het maken van een applicatie met de naam myShoppingList
, en voeg er een controller myCtrl
aan toe met de naam.
De controller voegt een array met de naam products
toe aan de huidige
$scope
.
In de HTML gebruiken we de ng-repeat
instructie om een lijst weer te geven met de items in de array.
Voorbeeld
Tot nu toe hebben we een HTML-lijst gemaakt op basis van de items van een array:
<script>
var app = angular.module("myShoppingList", []);
app.controller("myCtrl", function($scope) {
$scope.products
= ["Milk", "Bread", "Cheese"];
});
</script>
<div ng-app="myShoppingList"
ng-controller="myCtrl">
<ul>
<li ng-repeat="x in products">{{x}}</li>
</ul>
</div>
Stap 2. Artikelen toevoegen:
Voeg in de HTML een tekstveld toe en bind het aan de toepassing met de ng-model
richtlijn.
Maak in de controller een functie met de naam addItem
, en gebruik de waarde van het addMe
invoerveld om een item aan de products
array toe te voegen.
Voeg een knop toe en geef deze een ng-click
richtlijn die de addItem
functie uitvoert wanneer op de knop wordt geklikt.
Voorbeeld
Nu kunnen we items aan onze boodschappenlijst toevoegen:
<script>
var app = angular.module("myShoppingList", []);
app.controller("myCtrl", function($scope) {
$scope.products
= ["Milk", "Bread", "Cheese"];
$scope.addItem = function () {
$scope.products.push($scope.addMe);
}
});
</script>
<div ng-app="myShoppingList"
ng-controller="myCtrl">
<ul>
<li ng-repeat="x in products">{{x}}</li>
</ul>
<input ng-model="addMe">
<button ng-click="addItem()">Add</button>
</div>
Stap 3. Items verwijderen:
Ook willen we artikelen van het boodschappenlijstje kunnen halen.
Maak in de controller een functie met de naam removeItem
, die de index van het item dat u wilt verwijderen, als parameter neemt.
Maak in de HTML een <span>
element voor elk item en geef ze een ng-click
richtlijn die de removeItem
functie aanroept met de huidige $index
.
Voorbeeld
Nu kunnen we items van onze boodschappenlijst verwijderen:
<script>
var app = angular.module("myShoppingList", []);
app.controller("myCtrl", function($scope) {
$scope.products
= ["Milk", "Bread", "Cheese"];
$scope.addItem = function () {
$scope.products.push($scope.addMe);
}
$scope.removeItem = function (x) {
$scope.products.splice(x, 1);
}
});
</script>
<div ng-app="myShoppingList"
ng-controller="myCtrl">
<ul>
<li ng-repeat="x in products">
{{x}}<span ng-click="removeItem($index)">×</span>
</li>
</ul>
<input ng-model="addMe">
<button ng-click="addItem()">Add</button>
</div>
Stap 4. Foutafhandeling:
De applicatie heeft enkele fouten, bijvoorbeeld als je hetzelfde item twee keer probeert toe te voegen, crasht de applicatie. Het mag ook niet worden toegestaan om lege items toe te voegen.
We zullen dat oplossen door de waarde te controleren voordat we nieuwe items toevoegen.
In de HTML zullen we een container voor foutmeldingen toevoegen en een foutmelding schrijven wanneer iemand probeert een bestaand item toe te voegen.
Voorbeeld
Een boodschappenlijstje, met de mogelijkheid om foutmeldingen te schrijven:
<script>
var app = angular.module("myShoppingList", []);
app.controller("myCtrl", function($scope) {
$scope.products
= ["Milk", "Bread", "Cheese"];
$scope.addItem = function () {
$scope.errortext = "";
if (!$scope.addMe) {return;}
if ($scope.products.indexOf($scope.addMe)
== -1) {
$scope.products.push($scope.addMe);
} else {
$scope.errortext = "The item is already
in your shopping list.";
}
}
$scope.removeItem = function (x) {
$scope.errortext = "";
$scope.products.splice(x, 1);
}
});
</script>
<div ng-app="myShoppingList"
ng-controller="myCtrl">
<ul>
<li ng-repeat="x in products">
{{x}}<span ng-click="removeItem($index)">×</span>
</li>
</ul>
<input ng-model="addMe">
<button ng-click="addItem()">Add</button>
<p>{{errortext}}</p>
</div>
Stap 5. Ontwerp:
De applicatie werkt, maar zou een beter ontwerp kunnen gebruiken. We gebruiken de W3.CSS-stylesheet om onze applicatie op te maken.
Voeg de W3.CSS-stylesheet toe en neem de juiste klassen op in de hele applicatie, en het resultaat zal hetzelfde zijn als het boodschappenlijstje bovenaan deze pagina.
Voorbeeld
Stijl uw toepassing met behulp van de W3.CSS-stylesheet:
<link rel="stylesheet" href="https://www.w3schools.com/w3css/4/w3.css">