tutoriais mais recente desenvolvimento web
 

AngularJS Aplicação


É hora de criar um aplicativo AngularJS real.


Faça uma lista de compras

Vamos usar algumas das características AngularJS para fazer uma lista de compras, onde você pode adicionar ou remover itens:

Minha lista de compras

  • {{x}} ×

{{Errortext}}



aplicação Explicado

Passo 1. Introdução:

Comece por fazer uma aplicação chamada myShoppingList , e adicionar um controlador chamado myCtrl a ele.

O controlador adiciona uma matriz chamada products à actual $scope .

No HTML, usamos o ng-repeat directiva para exibir uma lista com os itens da matriz.

Exemplo

Até agora, temos fez uma lista de HTML com base nos itens de uma matriz:

<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>
Tente você mesmo "

Passo 2. Itens acrescentando:

No HTML, adicione um campo de texto, e ligá-la para o aplicativo com o ng-model directiva.

No controlador, fazer uma função chamada addItem , e usar o valor do addMe campo de entrada para adicionar um item para o products matriz.

Adicionar um botão, e dar-lhe uma ng-click directiva que irá executar o addItem função quando o botão é clicado.

Exemplo

Agora podemos adicionar itens a nossa lista de compras:

<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>
Tente você mesmo "

Passo 3. Itens Remoção:

Nós também queremos ser capaz de remover itens da lista de compras.

No controlador, fazer uma função chamada removeItem , que leva o índice do item que deseja remover, como uma paramter

No HTML, fazer um <span> elemento para cada item, e dar-lhes uma ng-click directiva que chama a removeItem função com o atual $index .

Exemplo

Agora podemos remover itens da nossa lista de compras:

<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>
Tente você mesmo "

Passo 4. Manipulação de erro:

A aplicação tem alguns erros, como se você tentar adicionar o mesmo item duas vezes, o aplicativo falha. Além disso, não devem ser autorizados a acrescentar itens vazios.

Vamos corrigir isso, verificando o valor antes de adicionar novos itens.

No HTML, vamos adicionar um recipiente para mensagens de erro, e escrever uma mensagem de erro quando alguém tenta adicionar um item existente.

Exemplo

A lista de compras, com a possibilidade de escrever mensagens de erro:

<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>
Tente você mesmo "

Passo 5. Projeto:

O aplicativo funciona, mas poderia usar um design melhor. Nós usamos a folha de estilo W3.CSS ao estilo de nosso aplicativo.

Adicione a folha de estilo W3.CSS, e incluem as classes próprias em todo o aplicativo, e o resultado será o mesmo que a lista de compras no topo desta página.

Exemplo

Estilo de seu aplicativo usando a folha de estilo W3.CSS:

<link rel="stylesheet" href="http://www.w3ii.com/lib/w3.css">
Tente você mesmo "