Cree un carro de compras simple usando AngularJS Parte 1

En esta serie de tutoriales, veremos cómo crear un carrito de la compra sencillo utilizando AngularJS. Esta serie de tutoriales se centrará en el uso de las directivas de AngularJS. Las directivas AngularJS son la parte central de AngularJS e imparten un comportamiento especial al HTML. De los documentos oficiales:

En un nivel alto, las directivas son marcadores en un elemento DOM (como un atributo, nombre de elemento, comentario o clase CSS) que le dicen al compilador HTML de AngularJS ($ compilar) para adjuntar un comportamiento específico a ese elemento DOM o incluso transformar el elemento DOM y sus hijos.

Diseño de una página de carro

Usaremos Bootstrap para diseñar nuestra página. Una vez que hayamos terminado con nuestra página diseñada de Bootstrap, la integraremos en nuestra aplicación AngularJS. Al diseñar la página, no entraremos en muchos detalles de Bootstrap, pero nos centraremos en algunos puntos críticos.

Crear una página llamada index.html. Descarga e incluye los archivos de Bootstrap para index.html.

      Carro Bootstrap Shop        

Dentro de .envase div, crea un .fila div. 

En el index.html Página, tendremos dos columnas. Uno tendrá una lista de artículos con precios mostrados, y la otra columna tendrá la Total div. Así que vamos a crear las dos columnas.

Ahora, en la primera columna vamos a agregar algunos elementos y opciones.

Título del panel

Replique el código HTML anterior unas cuantas veces en la primera columna para tener algunos elementos más. En la segunda columna, agregue el siguiente código HTML para mostrar la suma del precio de los artículos seleccionados.

Total

Rs. 100

Revisa

Guarda los cambios y navega index.html. Debería verse como

Se ve bien. Pero una cosa que necesitamos arreglar es hacer el Total div arreglado, para que no se mueva cuando nos desplazamos por el navegador. Para solucionarlo, utilizaremos el componente de JavaScript Bootstrap, Affix.

Primero asegúrese de haber incluido el archivo JavaScript Bootstrap. Para agregar el comportamiento del afijo, simplemente agregue el data-spy = "afijo" atribuir a la Total div. Opcionalmente, también podemos especificar la posición que queremos que coloque, así que mantengámosla a una cierta altura desde la parte superior agregando data-offset-top = "20". Ahora, si navegas index.html e intenta desplazarte hacia abajo en el navegador, el total permanece en la parte superior y siempre visible.

Creación de una aplicación de carrito de compras

Creación de un servidor de nodo

Mientras creamos nuestra aplicación AngularJS, utilizaremos la directiva ngView para cambiar de vista. Así que tendremos que ejecutar la aplicación AngularJS usando un servidor. Por lo tanto usaremos un servidor Node.js.

Empecemos creando un directorio para nuestro proyecto llamado Carrito de compras. Dentro Carrito de compras crear un archivo llamado server.js. Usaremos Express, un marco de aplicación web de NodeJS, para renderizar las páginas. Entonces instala exprimir utilizando npm.

npm install express

Una vez que Express se haya instalado correctamente, abra server.js, requiera Express y cree una aplicación.

'use strict' var express = require ('express'); var app = express ();

Mantendremos nuestros archivos AngularJS en una carpeta separada llamada público. Crea una carpeta llamada público. Dentro server.js definir el /público y / node_modules camino.

app.use ('/ public', express.static (__ dirname + '/ public')); app.use ('/ node_modules', express.static (__ dirname + '/ node_modules'));

A continuación, enlace la aplicación a una dirección de puerto local.

app.listen ('3000', function () console.log ('Servidor que se ejecuta en http: // localhost: 3000 !!'))

Ahora inicie el servidor Node.js y debería obtener el mensaje de servidor iniciado en el terminal.

nodo server.js

Pero si intenta navegar en http: // localhost: 3000, se mostrará el error. No puedo conseguirlo / Porque aún no hemos definido ninguna ruta..

Creando una aplicación AngularJS

Dentro de público directorio crear una página llamada main.html. Esto servirá como nuestro archivo de plantilla raíz. Simplemente copia el index.html página que hemos creado anteriormente en main.html. Desde main.html eliminar el contenido dentro del cuerpo. 

Descarga AngularJS e inclúyelo en main.html. Agregue la directiva ngApp a la parte superior de la etiqueta HTML.

Dentro de main.html cuerpo, agregue un div con la directiva ngView. Después de hacer todos los cambios anteriores, aquí es cómo main.html miradas

   Carro Bootstrap Shop       

Ahora, definamos nuestra página predeterminada para procesar cuando se inicia el servidor de nodos. Abierto ShoppingCart / server.js y agregue la siguiente ruta de aplicación para redirigir al main.html página.

app.get ('/', function (req, res) res.sendFile ('main.html', 'root': __ dirname + '/ public');)

Guarde los cambios y reinicie el servidor de nodo. Dirija su navegador a http: // localhost: 3000 y debería poder ver una página en blanco, a diferencia de la última vez que tuvimos un error en la misma ruta.

Creación de una vista y ruta de carro

A continuación, integremos el diseño del carrito de compras en la aplicación AngularJS. Dentro de público directorio crear otra carpeta llamada carro. Dentro carro crear dos archivos, cart.html y cart.js. Desde nuestra página de diseño de Bootstrap llamada index.html, Copia el contenido dentro del cuerpo y pega en cart.html.

Estaremos requiriendo ngRuta, así que instálalo usando npm.

npm instalar ruta angular

Una vez instalado, añadir una referencia a ruta angular en main.html.

Abrir cart.js y definir el carro módulo.

angular.module ('cart', ['ngRoute'])

Como se ve en el código anterior, hemos inyectado el ngRuta Módulo, que utilizaremos para definir las rutas..

.config (['$ routeProvider', function ($ routeProvider) $ routeProvider.when ('/ cart', templateUrl: 'public / cart / cart.html', controller: 'CartCtrl');])

Utilizando la ngRuta módulo, hemos definido el /carro Ruta con su respectiva plantilla y controlador. Además, define la CartCtrl controlador en el interior cart.js. Aquí es cómo cart.js miradas

'uso estricto'; angular.module ('cart', ['ngRoute']) .config (['$ routeProvider', function ($ routeProvider) $ routeProvider.when ('/ cart', templateUrl: 'public / cart / cart.html ', controlador:' CartCtrl ');]) .controller (' CartCtrl ', [function () ]);

También necesitaremos tener un archivo raíz para inyectar todos los módulos en nuestra aplicación AngularJS. Así que dentro de la público directorio crear un archivo llamado app.js. Este archivo servirá como archivo raíz para la aplicación AngularJS. Crea un nuevo módulo llamado carrito de compras dentro app.js e inyectar el módulo de carrito en él.

angular.module ('shoppingCart', ['ngRoute', 'cart']).

Defina la ruta por defecto para la aplicación AngularJS /carro dentro app.js.

'uso estricto'; angular.module ('shoppingCart', ['ngRoute', 'cart']). config (['$ routeProvider', function ($ routeProvider) $ routeProvider.otherwise (redirectTo: '/ cart');]);

Añadir una referencia a cart.js y app.js en el main.html página.

 

Guarde todos los cambios y reinicie el servidor. Dirija su navegador a http: // localhost: 3000 y debería mostrar la página del carrito.

Ahora, si se desplaza hacia abajo la página, la Total div no permanece fijo. Tome nota de este problema: lo arreglaremos más adelante en la serie.

Creación de una vista y ruta de pago

Dentro del directorio público, cree una carpeta llamada revisa. Dentro de revisa carpeta, crea dos archivos llamados checkout.html y checkout.js. Abierto checkout.html y añada el siguiente código HTML:

Cotización

UPC Rs. 20000
Disco duro Rs. 5000
Total: Rs. 25000
Personalizar

Abierto checkout.js y crea el revisa módulo. Inyectar el ngRuta Módulo y definir la plantilla por defecto y su lógica de controlador. Aquí es cómo checkout.js finalmente mira:

'uso estricto'; angular.module ('checkout', ['ngRoute']) .config (['$ routeProvider', function ($ routeProvider) $ routeProvider.when ('/ checkout', templateUrl: 'public / checkout / checkout.html ', controller:' CheckoutCtrl ');]) .controller (' CheckoutCtrl ', [' $ scope ', function ($ scope) ]);

Incluir una referencia a checkout.js en el main.html expediente.

Inyectar el modulo revisa en app.js de manera que la carrito de compras La aplicación AngularJS es consciente de este módulo..

angular.module ('shoppingCart', ['ngRoute', 'cart', 'checkout']).

Guarde los cambios y reinicie el servidor. Dirija su navegador a http: // localhost: 3000 / # / checkout y debería poder ver la página de checkout.

Conclusión

En este tutorial, diseñamos e integramos el diseño simple de nuestro carrito de compras en una aplicación AngularJS. En la siguiente parte de esta serie, veremos cómo crear una directiva personalizada para implementar la funcionalidad requerida.

El código fuente de este tutorial está disponible en GitHub. Háganos saber sus opiniones, correcciones y sugerencias en el cuadro de comentarios a continuación.!