Parece que hay una nueva cosecha de bibliotecas de JavaScript de propósito especial cada semana. Al parecer, se acabaron los días de usar una sola biblioteca por proyecto. Hoy les presentaré una biblioteca de componentes muy interesante, AmplifyJS, que ofrece solo algunos componentes muy especializados..
Según el sitio web:
AmplifyJS es un conjunto de componentes diseñados para resolver problemas comunes de aplicaciones web.
Suena prestigioso, pero lo que hay realmente en esta biblioteca.?
AmplifyJS tiene tres piezas principales:
¡Únete a mí ahora para un recorrido por la increíble biblioteca AmplifyJS! Vamos a construir un rastreador de empleados súper simple; en realidad, es solo una tabla con algunas características de aplicación, cortesía (en parte) de AmplifyJS.
No necesitamos preocuparnos por los problemas de diseño y estilo de hoy, así que voy a utilizar la biblioteca de Bootstrap de Twitter. Es increíblemente simple: solo incluye el enlazar
al archivo CSS, que te permiten hacer un enlace directo desde Github, y estás en el negocio.
Entonces, hazte un directorio de proyectos. Comenzar con el index.html
archivo, y un js
carpeta. Ahora, diríjase al sitio web de AmplifyJS y haga clic en esa enorme, ¿descarga roja? botón. Una vez que tenga la biblioteca zip, extráigala y muévala a la js
carpeta. Vamos a necesitar algunas otras cosas también:
bootstrap-modal.js
: La biblioteca de Twitter Bootstrap incluye algunos scripts para obtener todos los interactivos. Y vamos a utilizar uno: el plugin jQuery de la ventana modal. Descárgalo y agrégalo a eso. js
carpeta.Entonces, comienza nuestro index.html
archivo como este:
Amplificar js Comandos
Empleados
Si no estás familiarizado con el uso de Twitter Bootstrap, verás que no es fácil de usar. Tenemos un envase
eso es 940px de ancho. Entonces, tenemos dos fila
s. El primero tiene una columna, que cubre las 16 columnas. La otra tiene dos columnas: una tiene 4 columnas de ancho y la otra tiene 12 columnas de ancho..
Una cosa más, antes de llegar a un código real: vamos a abrir una ventana modal que permite ingresar empleados. Bajo la De acuerdo, ¡estamos listos para irnos! Vamos a codificar. Abrir un Estamos usando el plugin modal de Bootstrap aquí; ¿Esto solo? ¿Se instancia? La ventana modal. Ahora, queremos que aparezca la ventana cuando hacemos clic en "Agregar empleado". botón. Por supuesto, primero tendremos que agregar el botón: poner esto en el Ese Por lo tanto, el usuario deberá completar el formulario, haga clic en "Agregar". botón que tiene una identificación de Obtenemos el formulario, y luego ocultamos la ventana modal. Entonces, vamos a llamar a un Pero espera, dices, ¿qué? Usted querrá lanzar una etiqueta de script para arriba con los demás. Bastante simple, ¿verdad? Simplemente creamos un objeto literal con nuestros parámetros y agregamos un Este método no tiene que saber si otra parte de nuestro código quiere hacer algo con cada nuevo empleado que creamos; ¿Nuestro? ¿Añadir? botón de controlador de eventos no tiene que preocuparse por ello. Solo lo publicaremos como? Creado por los empleados? Evento para cualquier parte que este interesado en tomar. Pasamos nuestro nuevo objeto de empleado como datos para cualquier persona interesada. Luego, devolvemos el objeto de empleado (aunque no lo seguimos en nuestro controlador de eventos). Asi que, es ¿Alguna otra parte de nuestra aplicación interesada en el? creado por los empleados? Sí, de hecho. Queremos hacer dos cosas. Primero, agregue este empleado a una tabla en nuestra página. Segundo, queremos almacenar al empleado en localStorage. Aquí está la primera parte de eso: Para suscribirse a un evento, llamamos Que pasa con esto Ahora, tenemos que capturar esta tabla como una variable arriba en nuestra Y Es un poco complicado, pero no deberías tener ningún problema en asimilarlo. Tenemos un Esta micro-API nos facilita trabajar con nuestra mesa. Deberías poder ver cómo pasar una matriz a la Oh, entonces está la '+ mensaje +' Como puede ver, esto simplemente agrega un ¿Pero esa no es la única cosa que queremos hacer cuando el? ¿Creado por los empleados? evento ocurre: En la parte superior, con nuestras otras dos variables, haga la tercera y la final: Ahora estamos usando el componente de almacenamiento de AmplifyJS. Realmente no podría ser más simple: almacenar un valor, pasar Entonces, aquí agregamos un nuevo empleado a la matriz y almacenamos la matriz en los "empleados". llave. Debo tener en cuenta que dado que estamos almacenando una matriz, AmplifyJS está utilizando la serialización JSON para convertir esa matriz en una cadena. Por lo tanto, si está tratando de admitir navegadores sin soporte nativo de JSON (IE 5 y abajo, Firefox 3 y abajo), querrá incluir la biblioteca json2.js. En nuestro pequeño ejemplo de aplicación, estamos diciendo que, de forma predeterminada, los datos que ingresa en la aplicación se guardan solo en su computadora (en ese navegador). Sin embargo, si el usuario lo desea, podemos permitir que lo coloquen en el servidor (hipotéticamente, esta es información privada que tal vez no quieran compartir); sin embargo, si desean acceder a ella desde otros dispositivos, pueden hacerlo. ). Comenzaremos añadiendo un botón para subir los datos.. Ahora, por supuesto, sus mentes brillantes ya han descubierto que usaremos el componente AJAX de AmplifyJS. Hacer AJAX con AmplifyJS es un poco diferente que con otras bibliotecas: la idea es que primero se defina una conexión al servidor; luego, puedes usar esa conexión varias veces después de eso. Comencemos por definir una conexión, llamada? Recurso? por AmplifyJS: El primer parámetro aquí es Finalmente, tenemos un objeto de opciones. Según la documentación, sus opciones de configuración son cualquier cosa que usted establezca en Por supuesto, necesitaremos un PHP simple en el back-end; Asegúrate que Ahora, ¿qué hay de usar la conexión, el recurso, que hemos definido? Bueno, vamos a hacer esto en un controlador de clic para eso Cuando se usa el recurso, el primer parámetro es el ID de recurso; es el mismo ID de recurso que tenemos el recurso que definimos, por lo que AmplifyJS sabe cuál usar. En segundo lugar, pasamos el hash de datos. En este caso, pasamos el contenido en nuestra tienda, bajo la clave "empleados". El parámetro final es una función que se llama cuando obtenemos una respuesta.. Una vez que obtengamos una respuesta, publicaremos los? Datos empujados? evento. Entonces, solo alertaremos al usuario que funcionó: Bueno, esa es nuestra pequeña aplicación de ejemplo. Hemos examinado el uso de los tres componentes de AmplifyJS: Entonces, ¿qué piensas de AmplifyJS? ¿Gusta? ¿Lo encuentras demasiado redundante? Vamos a escucharlo en los comentarios.!Agregar un empleado
Paso 2: Cableado de la ventana modal
guión
etiqueta en la parte inferior de index.html
(Solo lo hago en línea, pero siento que debo ponerlo en un nuevo archivo JS). comienza de esta manera: (function () var employeeModal = $ ('# add-employee-modal'). modal (background: 'static'); ());
.
data-controls-modal = 'add-employee-modal'
atributo mostrará el modal con dicha ID cuando se hace clic en el botón.crear empleado
. Entonces, conectemos un controlador de eventos de clic para el botón:$ ('# create-employee'). click (function () var form = $ ('# employee-form'); employeeModal.modal ('hide'); EMPLOYEE.create (form.find ('[name = primer nombre] '). val (), form.find (' [nombre = apellido] '). val (), form.find (' [nombre = rol] '). val ()); form.find (' entrada ') .val ("););
EMPLEADO.crear
Método, pasando el nombre, el apellido y el rol como los tres parámetros. Finalmente, se borra el formulario..amplificar. publicar
EMPLEADO.crear
? Bueno, es una micro clase? que he puesto en js / employee.js
. Echale un vistazo:var EMPLOYEE = create: function (firstName, lastName, role) var employee = firstName: firstName, lastName: lastName, role: role, dateEmployed: new Date (); amplify.publish ('empleado-creado', empleado); empleado de retorno ;
Fecha de Empleo
propiedad. Pero, entonces, ¡y finalmente! Tenemos la primera entrada del framework AmplifyJS. Aquí, estamos usando el componente pub / sub events. Esto es ideal para hacer acoplamientos sueltos entre partes de su aplicación..
Paso 3: Reaccionando con
amplificar. suscribirse
amplify.subscribe ('empleado-creado', función (employee) employeeTable.add ([employee.firstName, employee.lastName, employee.role, employee.dateEmployed]); newAlert ('success', 'New Employee Added') ;);
amplificar. suscribirse
. Queremos suscribirnos a los "empleados creados"; cuando ocurran esos eventos, queremos agregarlo a la tabla de empleados
; Observe que en lugar de simplemente pasarlo empleado
objeto, nos convertimos? a una matriz Esto se debe a que debemos estar seguros de que los elementos estarán en el orden correcto. Luego, queremos mostrar un mensaje, informando a nuestro usuario que el empleado fue agregado exitosamente.tabla de empleados
¿variable? Bueno, primero, tenemos que añadir el a nuestro documento. Entonces, debajo de nuestros empleados.?
, Agrega esto:
Nombre de pila Apellido Papel Fecha de Empleo var
declaración en la parte superior:employeeTable = TABLE.create ($ ('# employee-table')),
MESA
? Esa es la última pieza de JS para este rompecabezas. Pon esto en js / table.js
y no olvides la etiqueta de script:var TABLE = proto: init: function (el) this.element = $ (el) .find ('tbody'); , agregue: function (arr) var row = $ ('
') .html (function () return $ .map (arr, function (value) return' '+ valor +' '; ). join (");); this.element.append (row);, load: function (rows, order) for (var i = 0; rows [i]; i ++) this.add ( filas [i]); var campos = []; para (var j = 0; orden [j]; j ++) fields.push (filas [i] [orden [j]]); this.add (campos );, clear: function () this.element.empty ();, create: function (el) var table = Object.create (this.proto); table.init (el); return table; ; proto
Propiedad que es el prototipo para nuestras instancias de tabla. Entonces, cuando llamamos crear
, usamos Object.create
para crear un objeto que hereda de esto.proto
. Después de eso, llamamos al en eso
Método para establecer cualquier propiedad. Finalmente, devolvemos la instancia de tabla.. añadir
Método añadirá una fila a nuestra tabla. Tenga en cuenta también que podemos pasar una matriz de filas a carga
y llenar la tabla; usaremos esto pronto.nuevoAlert
método que llamamos:función newAlert (tipo, mensaje) $ ('# alert-area'). append ($ ('
div
De adentro hacia afuera div
aprovecha el estilo de alerta de Twitter Bootstrap; Después de dos segundos, eliminamos la alerta y la eliminamos.. amplificar.tienda
employeeStore = amplify.store ('empleados') || [];
empleado tienda
. Si amplificar.tienda ('empleados')
devuelve algo, lo usaremos; De lo contrario, usaremos una matriz vacía..amplify.subscribe ('creado por el empleado', función (employee) employeeStore.push (empleado); amplify.store ('empleados', employeeStore););
amplificar.tienda
Una clave y el valor. Para recuperar el valor, entrégale la clave. Debajo, AmplifyJS almacena esa clave y valor en cualquier tipo de almacenamiento disponible en ese navegador.
Paso 4: Guardar en el servidor (con
amplificar.request
)
amplificar.request
es una API increíblemente flexible, y no veremos todo lo que puede hacer. Sin embargo, obtendrá una buena idea de cómo funciona aquí..amplify.request.define ('pushData', 'ajax', url: 'data.php', tipo: 'POST');
ID de recurso
, que estamos configurando como? pushData ?; Así es como nos referiremos a nuestra conexión cuando la estemos usando. El segundo parámetro es el tipo de solicitud; en este caso, ajax. Este es el único tipo de solicitud integrado en AmplifyJS; Puedes agregar el tuyo, pero esto es adecuado para nuestras necesidades de hoy..jQuery.ajax
, tanto como cache
(que le permite configurar una memoria caché personalizada) y descifrador
(Para analizar la respuesta AJAX). En nuestro caso, solo son necesarias dos opciones: la url
, y el tipo
de solicitud que estamos haciendo.datos
la carpeta es de escritura.data.php
:
$ ('# push-data'). click (function () amplify.request ('pushData', empleados: amplify.store ('empleados'), function (data) amplify.publish ('data-push ', datos);););
amplify.subscribe ('data-push', function () newAlert ('success', 'Datos enviados exitosamente al servidor'););
Yendo un paso más allá
amplify.publish / amplify.subscribe
, amplificar.tienda
, y amplificar.request
. Hemos cubierto prácticamente todo lo que hay que saber sobre el pubsub y las partes de la tienda (hay es un poco más!), pero hay una mucho más que puedes hacer con la API de solicitud. Por lo tanto, visite el sitio web para obtener más información.!