Aplikacje AngularJS
- Poprzednia strona Router AngularJS
- Następna strona Przykłady AngularJS
Czas na stworzenie prawdziwej aplikacji AngularJS.
Stwórz listę zakupów
Pozwólmy sobie użyć niektórych funkcji AngularJS do stworzenia listy zakupów, gdzie możesz dodawać lub usuwać produkty:
Moja lista zakupów
- {{x}}×
{{errortext}}
Opis aplikacji
Krok 1: Zacznij
Najpierw stwórz nazwany myShoppingList
aplikacji i dodaj do niej nazwany myCtrl
kontroler.
kontrolera o nazwie products
dodaj do bieżącego $scope
zawierającą
W HTML, używamy ng-repeat
polecenia do wyświetlenia listy używającej elementów tablicy.
Przykład
Do tej pory stworzyliśmy listę HTML na podstawie elementów tablicy:
<script> var app = angular.module("myShoppingList", []); app.controller("myCtrl", function($scope) { $scope.products = ["牛奶", "面包", "奶酪"]; }); </script> <div ng-app="myShoppingList" ng-controller="myCtrl"> <ul> <li ng-repeat="x in products">{{x}}</li> </ul> </div>
Krok 2: Dodaj produkt
W HTML, dodaj pole tekstowe i użyj ng-model
polecenia, aby go przypisać do aplikacji.
在控制器中,创建一个名为 addItem
funkcji i użyj addMe
Wartość pola wejściowego doda produkt do products
w tablicy.
Dodaj przycisk i przypisz mu ng-click
Polecenie, które zostanie uruchomione po kliknięciu przycisku addItem
函数。
Przykład
现在我们可以将商品添加到购物清单中:
<script> var app = angular.module("myShoppingList", []); app.controller("myCtrl", function($scope) { $scope.products = ["牛奶", "面包", "奶酪"]; $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()">Dodaj</button> </div>
第 3 步:删除商品
我们还希望能够从购物清单中删除商品。
在控制器中,创建一个名为 removeItem
的函数,该函数将您想要删除的项目的索引作为参数。
在 HTML 中,为每个项目创建一个 <span>
元素,并为其提供一个 ng-click
指令,该指令使用当前 $index
调用 removeItem
函数。
Przykład
现在我们可以从购物清单中删除商品:
<script> var app = angular.module("myShoppingList", []); app.controller("myCtrl", function($scope) { $scope.products = ["牛奶", "面包", "奶酪"]; $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()">Dodaj</button> </div>
第 4 步:错误处理
该应用有一些错误,例如,如果您尝试两次添加相同的商品,该应用就会崩溃。另外,也不应该允许添加空商品。
我们将通过添加新商品前检查值来解决这个问题。
在 HTML 中,我们将添加一个用于错误消息的容器,并在有人尝试添加现有商品时编写错误消息。
Przykład
购物清单,可以写入错误消息:
<script> var app = angular.module("myShoppingList", []); app.controller("myCtrl", function($scope) { $scope.products = ["牛奶", "面包", "奶酪"]; $scope.addItem = function () { $scope.errortext = ""; if (!$scope.addMe) {return;} if ($scope.products.indexOf($scope.addMe) == -1) { $scope.products.push($scope.addMe); } else { $scope.errortext = "该商品已经在您的购物清单中。"; } } $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()">Dodaj</button> <p>{{errortext}}</p> </div>
Krok 5: Projektowanie
Aplikacja działa, ale można jej poprawić projekt. Używamy arkusza stylów W3.CSS do projektowania naszej aplikacji.
Dodaj arkusz stylów W3.CSS i zawrzyj odpowiednie klasy w całej aplikacji, wynik będzie taki sam jak lista zakupów na górze strony.
Przykład
Użyj arkusza stylów W3.CSS do projektowania swojej aplikacji:
<link rel="stylesheet" href="https://www.codew3c.com/lib/style/w3.css">
- Poprzednia strona Router AngularJS
- Następna strona Przykłady AngularJS