Los últimos tutoriales de desarrollo web
 

AngularJS Solicitud


Es el momento de crear una aplicación real AngularJS.


Hacer una lista de compras

Vamos a utilizar algunas de las características AngularJS para hacer una lista de compras, era usted puede añadir o eliminar elementos:

Mi lista de la compra

  • {{x}} x

{{}} TextoError



Explicación de la aplicación

Paso 1. Primeros pasos:

Comience por hacer una aplicación llamada myShoppingList , y añadir un controlador llamado myCtrl a ella.

El controlador agrega una matriz llamada products a la corriente $scope .

En el código HTML, se utiliza el ng-repeat Directiva para mostrar una lista con los elementos de la matriz.

Ejemplo

Hasta ahora hemos hecho una lista HTML basado en los elementos de un 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>
Inténtalo tú mismo "

Paso 2. Adición de los elementos:

En el código HTML, agregue un campo de texto, y asociarla a la aplicación con el ng-model Directiva.

En el controlador, hacer una función llamada addItem , y utilizar el valor de la addMe campo de entrada para agregar un elemento a la products matriz.

Añadir un botón, y darle una ng-click Directiva que ejecutará el addItem función cuando se hace clic en el botón.

Ejemplo

Ahora podemos añadir elementos a nuestra lista de la compra:

<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>
Inténtalo tú mismo "

Paso 3. Los artículos Extracción:

También queremos ser capaces de eliminar elementos de la lista de compras.

En el controlador, hacer una función llamada removeItem , que toma el índice del elemento que desea eliminar, como un parametro

En el código HTML, hacer un <span> elemento para cada elemento, y darles una ng-click Directiva a la que llama a la removeItem función con el actual $index .

Ejemplo

Ahora podemos eliminar elementos de nuestra lista de la compra:

<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>
Inténtalo tú mismo "

Paso 4. Tratamiento de errores:

La aplicación tiene algunos errores, como si intenta agregar el mismo tema dos veces, la aplicación se bloquea. Además, no se debe permitir que añadir elementos vacíos.

Vamos a arreglar eso comprobando el valor antes de añadir nuevos elementos.

En el código HTML, añadiremos un recipiente para mensajes de error, y escribir un mensaje de error cuando alguien trata de añadir un elemento existente.

Ejemplo

Una lista de la compra, con la posibilidad de escribir mensajes de error:

<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>
Inténtalo tú mismo "

Paso 5. Diseño:

La aplicación funciona, pero podría usar un mejor diseño. Utilizamos la hoja de estilo W3.CSS el estilo de nuestra aplicación.

Añadir la hoja de estilo W3.CSS, e incluyen las clases apropiadas en toda la aplicación, y el resultado será el mismo que la lista de compras en la parte superior de esta página.

Ejemplo

El estilo de su aplicación mediante la hoja de estilo W3.CSS:

<link rel="stylesheet" href="http://www.w3ii.com/lib/w3.css">
Inténtalo tú mismo "