Neueste Web-Entwicklung Tutorials
 

AngularJS Anwendung


Es ist Zeit, eine echte AngularJS Anwendung zu erstellen.


Machen Sie eine Einkaufsliste

Lässt einige der AngularJS Funktionen verwenden, um eine Einkaufsliste machen, waren Sie Elemente hinzufügen oder entfernen können:

Meine Einkaufsliste

  • {{x}} ×

{{Errortext}}



Anmeldung erläutert

Schritt 1. Erste Schritte:

Beginnen Sie, indem Sie eine Anwendung machen namens myShoppingList , und fügen Sie einen Controller mit dem Namen myCtrl zu.

Der Controller fügt ein Array mit dem Namen products auf den aktuellen $scope .

Im HTML verwenden wir die ng-repeat - Richtlinie eine Liste anzuzeigen , die Elemente im Array verwendet wird .

Beispiel

Bisher haben wir eine HTML-Liste auf die Elemente eines Arrays auf Basis gemacht:

<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>
Versuch es selber "

Schritt 2. Hinzufügen von Elementen:

Im HTML, fügen Sie ein Textfeld, und binden Sie es an die Anwendung mit der ng-model - Richtlinie.

In der Steuerung machen eine Funktion namens addItem , und verwenden Sie den Wert des addMe Eingabefeld ein Element in die hinzuzufügen products Array.

Fügen Sie eine Schaltfläche, und geben Sie ihm einen ng-click - Direktive, die die ausgeführt wird addItem Funktion , wenn die Schaltfläche geklickt wird.

Beispiel

Jetzt können wir Artikel auf unserer Einkaufsliste hinzu:

<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>
Versuch es selber "

Schritt 3: Entfernen von Elementen:

Wir wollen auch in der Lage zu sein, Elemente aus der Einkaufsliste zu entfernen.

In der Steuerung machen eine Funktion namens removeItem , die den Index des Elements führt, als Paramter entfernen möchten

Im HTML, machen Sie eine <span> Element für jedes Element, und geben ihnen einen ng-click - Richtlinie , die die Anrufe removeItem Funktion mit dem aktuellen $index .

Beispiel

Jetzt können wir Produkte aus unserer Einkaufsliste zu entfernen:

<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)">&times;</span>
       
</li>
    </ul>
    <input ng-model="addMe">
    <button ng-click="addItem()">Add</button>
</div>
Versuch es selber "

Schritt 4. Fehlerbehandlung:

Die Anwendung hat einige Fehler, wie wenn Sie versuchen, zweimal das gleiche Element hinzufügen, die Anwendung abstürzt. Auch sollte es nicht erlaubt sein, um leere Elemente hinzuzufügen.

Wir werden das Problem beheben, indem Sie den Wert überprüfen, bevor neue Objekte hinzufügen.

Im HTML, werden wir einen Container für Fehlermeldungen hinzufügen und eine Fehlermeldung schreiben, wenn jemand ein vorhandenes Element hinzufügen versucht.

Beispiel

Eine Einkaufsliste, mit der Möglichkeit, Fehlermeldungen zu schreiben:

<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)">&times;</span>
        </li>
    </ul>
    <input ng-model="addMe">
    <button ng-click="addItem()">Add</button>
    <p>{{errortext}}</p>
</div>
Versuch es selber "

Schritt 5. Entwurf:

Die Anwendung funktioniert, könnte aber ein besseres Design verwenden. Wir verwenden die W3.CSS Sheet unsere Anwendung zu gestalten.

Fügen Sie den W3.CSS Sheet und umfassen die richtigen Klassen in der gesamten Anwendung, und das Ergebnis wird am Anfang der Seite die gleiche wie die Einkaufsliste sein.

Beispiel

Stylen Sie Ihre Anwendung mit dem W3.CSS Sheet:

<link rel="stylesheet" href="http://www.w3ii.com/lib/w3.css">
Versuch es selber "